1
# Copyright 2011 Canonical Ltd. This software is licensed under the
2
# GNU Affero General Public License version 3 (see the file LICENSE).
4
"""BugSummary Storm database classes."""
7
__all__ = ['BugSummary']
9
from storm.locals import (
15
from zope.interface import implements
17
from canonical.database.enumcol import EnumCol
18
from lp.bugs.interfaces.bugsummary import IBugSummary
19
from lp.bugs.interfaces.bugtask import BugTaskStatus
20
from lp.registry.model.distribution import Distribution
21
from lp.registry.model.distroseries import DistroSeries
22
from lp.registry.model.milestone import Milestone
23
from lp.registry.model.person import Person
24
from lp.registry.model.product import Product
25
from lp.registry.model.productseries import ProductSeries
26
from lp.registry.model.sourcepackagename import SourcePackageName
29
class BugSummary(Storm):
30
"""BugSummary Storm database class."""
32
implements(IBugSummary)
34
__storm_table__ = 'combinedbugsummary'
36
id = Int(primary=True)
39
product_id = Int(name='product')
40
product = Reference(product_id, Product.id)
42
productseries_id = Int(name='productseries')
43
productseries = Reference(productseries_id, ProductSeries.id)
45
distribution_id = Int(name='distribution')
46
distribution = Reference(distribution_id, Distribution.id)
48
distroseries_id = Int(name='distroseries')
49
distroseries = Reference(distroseries_id, DistroSeries.id)
51
sourcepackagename_id = Int(name='sourcepackagename')
52
sourcepackagename = Reference(sourcepackagename_id, SourcePackageName.id)
54
viewed_by_id = Int(name='viewed_by')
55
viewed_by = Reference(viewed_by_id, Person.id)
58
status = EnumCol(dbName='status', schema=BugTaskStatus)
60
milestone_id = Int(name='milestone')
61
milestone = Reference(milestone_id, Milestone.id)