From 289c455b98e289d1be495197f71721d2abf1893f Mon Sep 17 00:00:00 2001 From: Wenjie Zheng <wenjie.zheng@tiolive.com> Date: Thu, 11 Jun 2015 10:48:19 +0000 Subject: [PATCH] WorkflowTool.py: modify action url to gain compatiblity of erp5 workflow after conversion. --- product/ERP5/Tool/WorkflowTool.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/product/ERP5/Tool/WorkflowTool.py b/product/ERP5/Tool/WorkflowTool.py index f8ff8a789b..f730486d99 100644 --- a/product/ERP5/Tool/WorkflowTool.py +++ b/product/ERP5/Tool/WorkflowTool.py @@ -160,6 +160,7 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool): return False def doActionFor(self, ob, action, wf_id=None, *args, **kw): + LOG(" Call user_action '%s' "%action, WARNING, " in WorkflowTool.py 163") workflow_list = self.getWorkflowValueListFor(ob.getPortalType()) if wf_id is None: if workflow_list == []: @@ -168,6 +169,7 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool): for wf in workflow_list: if wf.isActionSupported(ob, action, **kw): found = 1 + LOG(" user_action is from workflow '%s'"%wf.getId(), WARNING, " in WorkflowTool.py, 172") break if not found: msg = _(u"No workflow provides the '${action_id}' action.",mapping={'action_id': action}) @@ -322,7 +324,12 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool): transition.setActboxCategory(tdef.actbox_category) transition.setActboxIcon(tdef.actbox_icon) transition.setActboxName(tdef.actbox_name) - transition.setActboxUrl(tdef.actbox_url) + # alter actbox_url to gain compatibility of erp5 workflow + compatible_url = tdef.actbox_url + if compatible_url is not None: + index_action_id = compatible_url.find(tdef.id) + compatible_url = compatible_url[:index_action_id] + 'transition_' + compatible_url[index_action_id:] + transition.setActboxUrl(compatible_url) transition.setDescription(tdef.description) if tdef.after_script_name is not None: # check after script is a Transion or a Script: @@ -406,16 +413,25 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool): state_id = 'state_'+value state_id_list.append(state_id) worklist.setMatchedSimulationStateList(state_id_list) + # alter url: + compatible_url = qdef.actbox_url + index_state_id = compatible_url.find(value) + compatible_url = compatible_url[:index_state_id] + 'state_' + compatible_url[index_state_id:] + worklist.setActboxUrl(compatible_url) elif key == 'validation_state': state_id_list = [] for value in values: state_id = 'state_'+value state_id_list.append(state_id) worklist.setMatchedValidationStateList(state_id_list) + # alter url: + compatible_url = qdef.actbox_url + index_state_id = compatible_url.find(value) + compatible_url = compatible_url[:index_state_id] + 'state_' + compatible_url[index_state_id:] + worklist.setActboxUrl(compatible_url) worklist.setActboxCategory(qdef.actbox_category) worklist.setActboxIcon(qdef.actbox_icon) worklist.setActboxName(qdef.actbox_name) - worklist.setActboxUrl(qdef.actbox_url) # configure guard if qdef.guard: worklist.setRoleList(qdef.guard.roles) -- 2.30.9