Commit d5df9c98 authored by wenjie.zheng's avatar wenjie.zheng Committed by Sebastien Robin

patches/WorkflowTool.py: modification on universal methods.

parent 454bcceb
...@@ -140,9 +140,13 @@ def DCWorkflowDefinition_getWorklistIdList(self): ...@@ -140,9 +140,13 @@ def DCWorkflowDefinition_getWorklistIdList(self):
return self.worklists.objectIds() return self.worklists.objectIds()
return [] return []
def StateDefinition_getDestinationIdList(self):
return self.transitions
DCWorkflowDefinition.getReference = method_getReference DCWorkflowDefinition.getReference = method_getReference
TransitionDefinition.getReference = method_getReference TransitionDefinition.getReference = method_getReference
StateDefinition.getReference = method_getReference StateDefinition.getReference = method_getReference
StateDefinition.getDestinationIdList = StateDefinition_getDestinationIdList
VariableDefinition.getReference = method_getReference VariableDefinition.getReference = method_getReference
WorklistDefinition.getReference = method_getReference WorklistDefinition.getReference = method_getReference
...@@ -922,12 +926,7 @@ WorkflowTool.getFutureStateSetFor = lambda self, wf_id, *args, **kw: \ ...@@ -922,12 +926,7 @@ WorkflowTool.getFutureStateSetFor = lambda self, wf_id, *args, **kw: \
def WorkflowTool_isTransitionPossible(self, ob, transition_id, wf_id=None): def WorkflowTool_isTransitionPossible(self, ob, transition_id, wf_id=None):
"""Test if the given transition exist from the current state. """Test if the given transition exist from the current state.
""" """
for workflow in (wf_id and (self[wf_id],) or self.getWorkflowsFor(ob)): for workflow in (wf_id and (self[wf_id],) or self.getWorkflowValueListFor(ob.getPortalType())):
state = workflow._getWorkflowStateOf(ob)
if state and transition_id in state.transitions:
return 1
for workflow_id in ob.getTypeInfo().getTypeERP5WorkflowList():
workflow = self.getPortalObject().getDefaultModule('Workflow')._getOb(workflow_id)
state = workflow._getWorkflowStateOf(ob) state = workflow._getWorkflowStateOf(ob)
if state and transition_id in state.getDestinationIdList(): if state and transition_id in state.getDestinationIdList():
return 1 return 1
...@@ -1045,7 +1044,6 @@ def _doActionFor(self, ob, action, wf_id=None, *args, **kw): ...@@ -1045,7 +1044,6 @@ def _doActionFor(self, ob, action, wf_id=None, *args, **kw):
for wf in workflow_list: for wf in workflow_list:
if wf.isActionSupported(ob, action, **kw): if wf.isActionSupported(ob, action, **kw):
found = 1 found = 1
case = 2
break break
if not found: if not found:
msg = _(u"No workflow provides the '${action_id}' action.",mapping={'action_id': action}) msg = _(u"No workflow provides the '${action_id}' action.",mapping={'action_id': action})
...@@ -1114,7 +1112,6 @@ def _getInfoFor(self, ob, name, default=_marker, wf_id=None, *args, **kw): ...@@ -1114,7 +1112,6 @@ def _getInfoFor(self, ob, name, default=_marker, wf_id=None, *args, **kw):
for workflow in workflow_list: for workflow in workflow_list:
if workflow.isInfoSuported(ob, name): if workflow.isInfoSuported(ob, name):
found = 1 found = 1
case = 2
break break
if not found: if not found:
if default is _marker: if default is _marker:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment