launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #32415
[Merge] ~enriqueesanchz/launchpad:add-date_deferred into launchpad:master
Enrique Sánchez has proposed merging ~enriqueesanchz/launchpad:add-date_deferred into launchpad:master.
Commit message:
Add date_deferred support to BugTask
date_deferred will be set when status changes to BugTaskStatus.DEFERRED
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~enriqueesanchz/launchpad/+git/launchpad/+merge/484952
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~enriqueesanchz/launchpad:add-date_deferred into launchpad:master.
diff --git a/lib/lp/bugs/browser/buglisting.py b/lib/lp/bugs/browser/buglisting.py
index 8adda0b..641e350 100644
--- a/lib/lp/bugs/browser/buglisting.py
+++ b/lib/lp/bugs/browser/buglisting.py
@@ -654,6 +654,7 @@ class BugTaskListingItem:
or self.bugtask.date_inprogress
or self.bugtask.date_left_new
or self.bugtask.datecreated
+ or self.bugtask.date_deferred
)
@property
diff --git a/lib/lp/bugs/configure.zcml b/lib/lp/bugs/configure.zcml
index 4beb6e0..8ac1fcd 100644
--- a/lib/lp/bugs/configure.zcml
+++ b/lib/lp/bugs/configure.zcml
@@ -198,6 +198,7 @@
date_inprogress
date_left_new
date_triaged
+ date_deferred
date_fix_committed
date_fix_released
date_left_closed
diff --git a/lib/lp/bugs/interfaces/bugtask.py b/lib/lp/bugs/interfaces/bugtask.py
index f9be6c0..e22d8d0 100644
--- a/lib/lp/bugs/interfaces/bugtask.py
+++ b/lib/lp/bugs/interfaces/bugtask.py
@@ -694,6 +694,14 @@ class IBugTask(IHasBug, IBugTaskDelete):
required=False,
)
)
+ date_deferred = exported(
+ Datetime(
+ title=_("Date deferred"),
+ description=_("The date on which this task was " "deferred."),
+ readonly=True,
+ required=False,
+ )
+ )
age = Datetime(
title=_("Age"),
description=_(
diff --git a/lib/lp/bugs/model/bugtask.py b/lib/lp/bugs/model/bugtask.py
index 799c8cf..d6116ce 100644
--- a/lib/lp/bugs/model/bugtask.py
+++ b/lib/lp/bugs/model/bugtask.py
@@ -470,6 +470,7 @@ class BugTask(StormBase):
"date_fix_committed",
"date_fix_released",
"date_left_closed",
+ "date_deferred",
)
_NON_CONJOINED_STATUSES = (BugTaskStatus.WONTFIX,)
@@ -596,6 +597,12 @@ class BugTask(StormBase):
default=None,
validator=validate_conjoined_attribute,
)
+ date_deferred = DateTime(
+ tzinfo=timezone.utc,
+ allow_none=True,
+ default=None,
+ validator=validate_conjoined_attribute,
+ )
owner_id = Int(
name="owner", allow_none=False, validator=validate_public_person
@@ -1073,6 +1080,7 @@ class BugTask(StormBase):
self.date_triaged = None
self.date_fix_committed = None
self.date_fix_released = None
+ self.date_deferred = None
return
if when is None:
@@ -1116,6 +1124,13 @@ class BugTask(StormBase):
# This task is now marked as TRIAGED
self.date_triaged = when
+ if (
+ old_status < BugTaskStatus.DEFERRED
+ and new_status == BugTaskStatus.DEFERRED
+ ):
+ # This task is now marked as DEFERRED
+ self.date_deferred = when
+
# If the new status is equal to or higher
# than FIXCOMMITTED, we record a `date_fixcommitted`
# to mark the fact that the task has passed
@@ -1173,6 +1188,9 @@ class BugTask(StormBase):
if new_status < BugTaskStatus.TRIAGED:
self.date_triaged = None
+ if new_status < BugTaskStatus.DEFERRED:
+ self.date_deferred = None
+
if new_status < BugTaskStatus.FIXCOMMITTED:
self.date_fix_committed = None
diff --git a/lib/lp/bugs/model/tests/test_bugtask.py b/lib/lp/bugs/model/tests/test_bugtask.py
index 2eed994..4549f0a 100644
--- a/lib/lp/bugs/model/tests/test_bugtask.py
+++ b/lib/lp/bugs/model/tests/test_bugtask.py
@@ -1969,6 +1969,7 @@ class TestConjoinedBugTasks(TestCaseWithFactory):
* date_triaged
* date_fix_committed
* date_fix_released
+ * date_deferred
XXX: rharding 2012-05-14 bug=999298: These tests are ported from doctests
@@ -2337,6 +2338,12 @@ class TestConjoinedBugTasks(TestCaseWithFactory):
current_series_netapplet_task.date_closed,
generic_netapplet_task.date_closed,
)
+ self.assertIsInstance(generic_netapplet_task.date_deferred, datetime)
+ self.assertEqual(
+ current_series_netapplet_task.date_deferred,
+ generic_netapplet_task.date_deferred,
+ )
+
# Only admin can transition from BugTaskStatus.DEFERRED
current_series_netapplet_task.transitionToStatus(
BugTaskStatus.FIXRELEASED, getUtility(ILaunchpadCelebrities).admin
diff --git a/lib/lp/bugs/stories/webservice/xx-bug.rst b/lib/lp/bugs/stories/webservice/xx-bug.rst
index 0aa7da2..b45bb61 100644
--- a/lib/lp/bugs/stories/webservice/xx-bug.rst
+++ b/lib/lp/bugs/stories/webservice/xx-bug.rst
@@ -458,6 +458,7 @@ data in a bug task is derived from the bug.
date_closed: None
date_confirmed: None
date_created: '2004-01-04T03:49:22.790240+00:00'
+ date_deferred: None
date_fix_committed: None
date_fix_released: None
date_in_progress: None