Merge ~cjwatson/launchpad:blueprints-dbenum into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 452a755e3ed0859007da3fbad61fcea4e1fc498e
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:blueprints-dbenum
Merge into: launchpad:master
Diff against target: 86 lines (+15/-13)
2 files modified
lib/lp/blueprints/model/specification.py (+11/-9)
lib/lp/blueprints/model/specificationworkitem.py (+4/-4)
Reviewer Review Type Date Requested Status
Jürgen Gmach Approve
Review via email: mp+412099@code.launchpad.net

Commit message

lp.blueprints: Use DBEnum rather than EnumCol

To post a comment you must log in.
Revision history for this message
Jürgen Gmach (jugmac00) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lib/lp/blueprints/model/specification.py b/lib/lp/blueprints/model/specification.py
2index b0e56c0..8d2e21c 100644
3--- a/lib/lp/blueprints/model/specification.py
4+++ b/lib/lp/blueprints/model/specification.py
5@@ -86,7 +86,7 @@ from lp.services.database.constants import (
6 UTC_NOW,
7 )
8 from lp.services.database.datetimecol import UtcDateTimeCol
9-from lp.services.database.enumcol import EnumCol
10+from lp.services.database.enumcol import DBEnum
11 from lp.services.database.interfaces import IStore
12 from lp.services.database.sqlbase import (
13 convert_storm_clause_to_string,
14@@ -177,10 +177,11 @@ class Specification(SQLBase, BugLinkTargetMixin, InformationTypeMixin):
15 name = StringCol(unique=True, notNull=True)
16 title = StringCol(notNull=True)
17 summary = StringCol(notNull=True)
18- definition_status = EnumCol(
19- schema=SpecificationDefinitionStatus, notNull=True,
20+ definition_status = DBEnum(
21+ enum=SpecificationDefinitionStatus, allow_none=False,
22 default=SpecificationDefinitionStatus.NEW)
23- priority = EnumCol(schema=SpecificationPriority, notNull=True,
24+ priority = DBEnum(
25+ enum=SpecificationPriority, allow_none=False,
26 default=SpecificationPriority.UNDEFINED)
27 _assignee = ForeignKey(dbName='assignee', notNull=False,
28 foreignKey='Person',
29@@ -203,7 +204,8 @@ class Specification(SQLBase, BugLinkTargetMixin, InformationTypeMixin):
30 foreignKey='Distribution', notNull=False, default=None)
31 distroseries = ForeignKey(dbName='distroseries',
32 foreignKey='DistroSeries', notNull=False, default=None)
33- goalstatus = EnumCol(schema=SpecificationGoalStatus, notNull=True,
34+ goalstatus = DBEnum(
35+ enum=SpecificationGoalStatus, allow_none=False,
36 default=SpecificationGoalStatus.PROPOSED)
37 goal_proposer = ForeignKey(dbName='goal_proposer', notNull=False,
38 foreignKey='Person',
39@@ -219,8 +221,8 @@ class Specification(SQLBase, BugLinkTargetMixin, InformationTypeMixin):
40 whiteboard = StringCol(notNull=False, default=None)
41 direction_approved = BoolCol(notNull=True, default=False)
42 man_days = IntCol(notNull=False, default=None)
43- implementation_status = EnumCol(
44- schema=SpecificationImplementationStatus, notNull=True,
45+ implementation_status = DBEnum(
46+ enum=SpecificationImplementationStatus, allow_none=False,
47 default=SpecificationImplementationStatus.UNKNOWN)
48 superseded_by = ForeignKey(dbName='superseded_by',
49 foreignKey='Specification', notNull=False, default=None)
50@@ -254,8 +256,8 @@ class Specification(SQLBase, BugLinkTargetMixin, InformationTypeMixin):
51 dependencies = SQLRelatedJoin('Specification', joinColumn='specification',
52 otherColumn='dependency', orderBy='title',
53 intermediateTable='SpecificationDependency')
54- information_type = EnumCol(
55- enum=InformationType, notNull=True, default=InformationType.PUBLIC)
56+ information_type = DBEnum(
57+ enum=InformationType, allow_none=False, default=InformationType.PUBLIC)
58
59 @cachedproperty
60 def linked_branches(self):
61diff --git a/lib/lp/blueprints/model/specificationworkitem.py b/lib/lp/blueprints/model/specificationworkitem.py
62index 942dd35..1e2aed2 100644
63--- a/lib/lp/blueprints/model/specificationworkitem.py
64+++ b/lib/lp/blueprints/model/specificationworkitem.py
65@@ -22,7 +22,7 @@ from lp.blueprints.interfaces.specificationworkitem import (
66 from lp.registry.interfaces.person import validate_public_person
67 from lp.services.database.constants import DEFAULT
68 from lp.services.database.datetimecol import UtcDateTimeCol
69-from lp.services.database.enumcol import EnumCol
70+from lp.services.database.enumcol import DBEnum
71 from lp.services.database.stormbase import StormBase
72 from lp.services.helpers import backslashreplace
73
74@@ -41,9 +41,9 @@ class SpecificationWorkItem(StormBase):
75 assignee = Reference(assignee_id, 'Person.id')
76 milestone_id = Int(name='milestone')
77 milestone = Reference(milestone_id, 'Milestone.id')
78- status = EnumCol(
79- schema=SpecificationWorkItemStatus,
80- notNull=True, default=SpecificationWorkItemStatus.TODO)
81+ status = DBEnum(
82+ enum=SpecificationWorkItemStatus,
83+ allow_none=False, default=SpecificationWorkItemStatus.TODO)
84 date_created = UtcDateTimeCol(notNull=True, default=DEFAULT)
85 sequence = Int(allow_none=False)
86 deleted = Bool(allow_none=False, default=False)

Subscribers

People subscribed via source and target branches

to status/vote changes: