add abandoned status to basic task and validation workflows (#4938)

This commit is contained in:
Frédéric Péters 2014-06-30 15:03:42 +02:00
parent 7b9fe6c4ab
commit 907d360c36
3 changed files with 48 additions and 2 deletions

View File

@ -22,6 +22,7 @@
</state>
<state state_id="todo" title="To do" i18n:attributes="title">
<exit-transition transition_id="mark-as-done"/>
<exit-transition transition_id="abandon"/>
<permission-map name="View" acquired="False" i18n:attributes="title">
<permission-role>Editor</permission-role>
<permission-role>Manager</permission-role>
@ -34,10 +35,28 @@
<permission-role>Reviewer</permission-role>
</permission-map>
</state>
<state state_id="abandoned" title="Abandoned" i18n:attributes="title">
<permission-map name="View" acquired="False">
<permission-role>Manager</permission-role>
<permission-role>Reviewer</permission-role>
<permission-role>Editor</permission-role>
<permission-role>Reader</permission-role>
</permission-map>
<permission-map name="Modify portal content" acquired="False">
<permission-role>Manager</permission-role>
</permission-map>
</state>
<transition transition_id="mark-as-done" title="Mark as done" new_state="done" trigger="USER" before_script="" after_script="">
<action url="" category="workflow" icon="" i18n:translate="">Mark as done</action>
<guard>
<guard-role>Editor</guard-role>
</guard>
</transition>
<transition transition_id="abandon" title="Abandon" new_state="abandoned" trigger="USER" before_script="" after_script="">
<action url="" category="workflow" icon="" i18n:translate="">Abandon</action>
<guard>
<guard-role>Manager</guard-role>
</guard>
</transition>
</dc-workflow>

View File

@ -34,6 +34,7 @@
<state state_id="todo" title="To do" i18n:attributes="title">
<exit-transition transition_id="validate"/>
<exit-transition transition_id="refuse"/>
<exit-transition transition_id="abandon"/>
<permission-map name="View" acquired="False" i18n:attributes="title">
<permission-role>Editor</permission-role>
<permission-role>Manager</permission-role>
@ -46,6 +47,19 @@
<permission-role>Reviewer</permission-role>
</permission-map>
</state>
<state state_id="abandoned" title="Abandoned" i18n:attributes="title">
<permission-map name="View" acquired="False">
<permission-role>Manager</permission-role>
<permission-role>Reviewer</permission-role>
<permission-role>Editor</permission-role>
<permission-role>Reader</permission-role>
</permission-map>
<permission-map name="Modify portal content" acquired="False">
<permission-role>Manager</permission-role>
</permission-map>
</state>
<transition transition_id="validate" title="Validate" new_state="validated" trigger="USER" before_script="" after_script="">
<action url="" category="workflow" icon="" i18n:translate="">Validate</action>
<guard>
@ -58,4 +72,11 @@
<guard-role>Editor</guard-role>
</guard>
</transition>
<transition transition_id="abandon" title="Abandon" new_state="abandoned" trigger="USER" before_script="" after_script="">
<action url="" category="workflow" icon="" i18n:translate="">Abandon</action>
<guard>
<guard-role>Manager</guard-role>
</guard>
</transition>
</dc-workflow>

View File

@ -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'])