diff --git a/src/collective/task/profiles/default/workflows/basic_task_workflow/definition.xml b/src/collective/task/profiles/default/workflows/basic_task_workflow/definition.xml index 7e80daf..6698af7 100644 --- a/src/collective/task/profiles/default/workflows/basic_task_workflow/definition.xml +++ b/src/collective/task/profiles/default/workflows/basic_task_workflow/definition.xml @@ -22,6 +22,7 @@ + Editor Manager @@ -34,10 +35,28 @@ Reviewer + + + Manager + Reviewer + Editor + Reader + + + Manager + + + Mark as done Editor + + Abandon + + Manager + + diff --git a/src/collective/task/profiles/default/workflows/validation_workflow/definition.xml b/src/collective/task/profiles/default/workflows/validation_workflow/definition.xml index 34587eb..8088b8d 100644 --- a/src/collective/task/profiles/default/workflows/validation_workflow/definition.xml +++ b/src/collective/task/profiles/default/workflows/validation_workflow/definition.xml @@ -34,6 +34,7 @@ + Editor Manager @@ -46,6 +47,19 @@ Reviewer + + + Manager + Reviewer + Editor + Reader + + + Manager + + + + Validate @@ -58,4 +72,11 @@ Editor + + Abandon + + Manager + + + diff --git a/src/collective/task/subscribers.py b/src/collective/task/subscribers.py index 230f6f2..6325a46 100644 --- a/src/collective/task/subscribers.py +++ b/src/collective/task/subscribers.py @@ -41,11 +41,17 @@ def task_changed_state(context, event): with api.env.adopt_roles(['Reviewer']): if event.new_state.id == 'done': with api.env.adopt_user('admin'): - api.content.transition(obj=parent, transition='subtask-done') + try: + api.content.transition(obj=parent, transition='subtask-done') + except api.exc.InvalidParameterError: + pass parent.reindexObject(idxs=['review_state']) elif event.new_state.id == 'abandoned': with api.env.adopt_user('admin'): - api.content.transition(obj=parent, transition='subtask-abandoned') + try: + api.content.transition(obj=parent, transition='subtask-abandoned') + except api.exc.InvalidParameterError: + pass parent.reindexObject(idxs=['review_state'])