~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/registry/model/structuralsubscription.py

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-01-19 18:47:30 UTC
  • mfrom: (12233.1.1 ss-storm-rewrite)
  • Revision ID: launchpad@pqm.canonical.com-20110119184730-3pop734b0fvh0lwk
[r=gary][ui=none][no-qa] Switch StructuralSubscription to Storm
 column-definitions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
    'StructuralSubscriptionTargetMixin',
8
8
    ]
9
9
 
10
 
from sqlobject import ForeignKey
 
10
import pytz
 
11
 
 
12
from storm.locals import (
 
13
    DateTime,
 
14
    Int,
 
15
    Reference,
 
16
    )
 
17
 
11
18
from storm.expr import (
12
19
    Alias,
13
20
    And,
31
38
from zope.interface import implements
32
39
 
33
40
from canonical.database.constants import UTC_NOW
34
 
from canonical.database.datetimecol import UtcDateTimeCol
35
 
from canonical.database.enumcol import EnumCol
 
41
from canonical.database.enumcol import DBEnum
36
42
from canonical.database.sqlbase import (
37
43
    quote,
38
44
    SQLBase,
81
87
 
82
88
    _table = 'StructuralSubscription'
83
89
 
84
 
    product = ForeignKey(
85
 
        dbName='product', foreignKey='Product', notNull=False, default=None)
86
 
    productseries = ForeignKey(
87
 
        dbName='productseries', foreignKey='ProductSeries', notNull=False,
88
 
        default=None)
89
 
    project = ForeignKey(
90
 
        dbName='project', foreignKey='ProjectGroup', notNull=False,
91
 
        default=None)
92
 
    milestone = ForeignKey(
93
 
        dbName='milestone', foreignKey='Milestone', notNull=False,
94
 
        default=None)
95
 
    distribution = ForeignKey(
96
 
        dbName='distribution', foreignKey='Distribution', notNull=False,
97
 
        default=None)
98
 
    distroseries = ForeignKey(
99
 
        dbName='distroseries', foreignKey='DistroSeries', notNull=False,
100
 
        default=None)
101
 
    sourcepackagename = ForeignKey(
102
 
        dbName='sourcepackagename', foreignKey='SourcePackageName',
103
 
        notNull=False, default=None)
104
 
    subscriber = ForeignKey(
105
 
        dbName='subscriber', foreignKey='Person',
106
 
        storm_validator=validate_person, notNull=True)
107
 
    subscribed_by = ForeignKey(
108
 
        dbName='subscribed_by', foreignKey='Person',
109
 
        storm_validator=validate_public_person, notNull=True)
110
 
    bug_notification_level = EnumCol(
 
90
    __storm_table__ = 'StructuralSubscription'
 
91
 
 
92
    id = Int(primary=True)
 
93
 
 
94
    productID = Int("product", default=None)
 
95
    product = Reference(productID, "Product.id")
 
96
 
 
97
    productseriesID = Int("productseries", default=None)
 
98
    productseries = Reference(productseriesID, "ProductSeries.id")
 
99
 
 
100
    projectID = Int("project", default=None)
 
101
    project = Reference(projectID, "ProjectGroup.id")
 
102
 
 
103
    milestoneID = Int("milestone", default=None)
 
104
    milestone = Reference(milestoneID, "Milestone.id")
 
105
 
 
106
    distributionID = Int("distribution", default=None)
 
107
    distribution = Reference(distributionID, "Distribution.id")
 
108
 
 
109
    distroseriesID = Int("distroseries", default=None)
 
110
    distroseries = Reference(distroseriesID, "DistroSeries.id")
 
111
 
 
112
    sourcepackagenameID = Int("sourcepackagename", default=None)
 
113
    sourcepackagename = Reference(sourcepackagenameID, "SourcePackageName.id")
 
114
 
 
115
    subscriberID = Int("subscriber", allow_none=False,
 
116
                        validator=validate_person)
 
117
    subscriber = Reference(subscriberID, "Person.id")
 
118
 
 
119
    subscribed_byID = Int("subscribed_by", allow_none=False,
 
120
                          validator=validate_public_person)
 
121
    subscribed_by = Reference(subscribed_byID, "Person.id")
 
122
 
 
123
    bug_notification_level = DBEnum(
111
124
        enum=BugNotificationLevel,
112
125
        default=BugNotificationLevel.NOTHING,
113
 
        notNull=True)
114
 
    blueprint_notification_level = EnumCol(
 
126
        allow_none=False)
 
127
    blueprint_notification_level = DBEnum(
115
128
        enum=BlueprintNotificationLevel,
116
129
        default=BlueprintNotificationLevel.NOTHING,
117
 
        notNull=True)
118
 
    date_created = UtcDateTimeCol(
119
 
        dbName='date_created', notNull=True, default=UTC_NOW)
120
 
    date_last_updated = UtcDateTimeCol(
121
 
        dbName='date_last_updated', notNull=True, default=UTC_NOW)
 
130
        allow_none=False)
 
131
    date_created = DateTime(
 
132
        "date_created", allow_none=False, default=UTC_NOW,
 
133
        tzinfo=pytz.UTC)
 
134
    date_last_updated = DateTime(
 
135
        "date_last_updated", allow_none=False, default=UTC_NOW,
 
136
        tzinfo=pytz.UTC)
122
137
 
123
138
    @property
124
139
    def target(self):