changeset dda6cff8e981 in modules/project:default
details: https://hg.tryton.org/modules/project?cmd=changeset;node=dda6cff8e981
description:
        Reset progress and status on copied work

        issue9284
        review309511002
diffstat:

 tests/scenario_project_status.rst |  7 +++++++
 work.py                           |  5 +++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diffs (34 lines):

diff -r ee016e880542 -r dda6cff8e981 tests/scenario_project_status.rst
--- a/tests/scenario_project_status.rst Sat Apr 25 23:53:51 2020 +0200
+++ b/tests/scenario_project_status.rst Fri May 01 00:22:07 2020 +0200
@@ -85,3 +85,10 @@
     >>> task = Work(task.id)
     >>> task.progress = 0.5
     >>> task.save()
+
+Copy the project::
+
+    >>> project_copy, = project.duplicate()
+    >>> project_copy.status == open
+    True
+    >>> project_copy.progress
diff -r ee016e880542 -r dda6cff8e981 work.py
--- a/work.py   Sat Apr 25 23:53:51 2020 +0200
+++ b/work.py   Fri May 01 00:22:07 2020 +0200
@@ -502,11 +502,16 @@
 
     @classmethod
     def copy(cls, project_works, default=None):
+        pool = Pool()
+        WorkStatus = pool.get('project.work.status')
         if default is None:
             default = {}
         else:
             default = default.copy()
         default.setdefault('children', None)
+        default.setdefault('progress', None)
+        default.setdefault(
+            'status', lambda data: WorkStatus.get_default_status(data['type']))
         return super().copy(project_works, default=default)
 
     @classmethod

Reply via email to