# HG changeset patch # User Sylvain Thénault # Date 1254998071 -7200 # Node ID f4317edf4058c3bc31e09d4f020f8cc8e65cb143 # Parent 1ec4452aa36f486b3c177b82fe4b3148dbbf0da0# Parent ec0be256882b47a558f4c669ade03627bec4fcc9 merge diff -r ec0be256882b -r f4317edf4058 entities/test/unittest_wfobjs.py --- a/entities/test/unittest_wfobjs.py Thu Oct 08 11:46:40 2009 +0200 +++ b/entities/test/unittest_wfobjs.py Thu Oct 08 12:34:31 2009 +0200 @@ -173,15 +173,19 @@ created = twf.add_state(_('created'), initial=True) identified = twf.add_state(_('identified')) released = twf.add_state(_('released')) + closed = twf.add_state(_('closed')) twf.add_wftransition(_('identify'), subwf, (created,), [(xsigned, identified), (xaborted, created)]) twf.add_wftransition(_('release'), subwf, (identified,), [(xsigned, released), (xaborted, identified)]) + twf.add_wftransition(_('close'), subwf, (released,), + [(xsigned, closed), (xaborted, released)]) self.commit() group = self.add_entity('CWGroup', name=u'grp1') self.commit() - for trans in ('identify', 'release'): + for trans in ('identify', 'release', 'close'): group.fire_transition(trans) + self.commit() def test_subworkflow_base(self): """subworkflow diff -r ec0be256882b -r f4317edf4058 entities/wfobjs.py --- a/entities/wfobjs.py Thu Oct 08 11:46:40 2009 +0200 +++ b/entities/wfobjs.py Thu Oct 08 12:34:31 2009 +0200 @@ -489,12 +489,13 @@ if self.main_workflow.eid == self.current_workflow.eid: return # doesn't make sense subwfentries = [] - for trinfo in reversed(self.workflow_history): + for trinfo in self.workflow_history: if (trinfo.transition and trinfo.previous_state.workflow.eid != trinfo.new_state.workflow.eid): # entering or leaving a subworkflow if (subwfentries and - subwfentries[-1].new_state.workflow.eid == trinfo.previous_state.workflow.eid): + subwfentries[-1].new_state.workflow.eid == trinfo.previous_state.workflow.eid and + subwfentries[-1].previous_state.workflow.eid == trinfo.new_state.workflow.eid): # leave del subwfentries[-1] else: diff -r ec0be256882b -r f4317edf4058 etwist/server.py diff -r ec0be256882b -r f4317edf4058 server/hooks.py