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