From c866c993ed3755d971395154ce993fb9cd11283c Mon Sep 17 00:00:00 2001 From: Wenjie Zheng <wenjie.zheng@tiolive.com> Date: Tue, 28 Apr 2015 14:55:33 +0000 Subject: [PATCH] WorkflowState.py: modify workflow getter since workflow_module has been merged with portal_workflow. --- product/ERP5Type/Accessor/WorkflowState.py | 41 +++++++++------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/product/ERP5Type/Accessor/WorkflowState.py b/product/ERP5Type/Accessor/WorkflowState.py index b81cd24d08..c6f5723fea 100644 --- a/product/ERP5Type/Accessor/WorkflowState.py +++ b/product/ERP5Type/Accessor/WorkflowState.py @@ -55,13 +55,13 @@ class Getter(BaseGetter): self._key = key def __call__(self, instance): - try: - erp5Workflow_module = instance.getPortalObject()._getOb("workflow_module", None) - wf = erp5Workflow_module._getOb(self._key)### _getObjectByRef - except: - portal_workflow = instance.getPortalObject().portal_workflow - wf = portal_workflow.getWorkflowById(self._key) - return wf._getWorkflowStateOf(instance, id_only=1) + portal_workflow = instance.getPortalObject().portal_workflow + wf = portal_workflow.getWorkflowById(self._key) + if wf.getPortalType() in ['Workflow', 'Interaction Workflow']: + # remove id suffix for workflow and interaction workflow + return '_'.join(wf._getWorkflowStateOf(instance, id_only=1).split('_')[0:-1]) + else: + return wf._getWorkflowStateOf(instance, id_only=1) psyco.bind(__call__) @@ -84,12 +84,8 @@ class TitleGetter(BaseGetter): self._key = key def __call__(self, instance): - try: - erp5Workflow_module = instance.getPortalObject()._getOb("workflow_module", None) - wf = erp5Workflow_module._getOb(self._key)### _getObjectByRef - except: - portal_workflow = instance.getPortalObject().portal_workflow - wf = portal_workflow.getWorkflowById(self._key) + portal_workflow = instance.getPortalObject().portal_workflow + wf = portal_workflow.getWorkflowById(self._key) return wf._getWorkflowStateOf(instance).getTitle() psyco.bind(__call__) @@ -99,13 +95,12 @@ class TranslatedGetter(Getter): """ def __call__(self, instance): - try: - erp5Workflow_module = instance.getPortalObject()._getOb("workflow_module", None) - wf = erp5Workflow_module._getOb(self._key)### _getObjectByRef - except: - portal = instance.getPortalObject() - wf = portal.portal_workflow.getWorkflowById(self._key) - state_id = wf._getWorkflowStateOf(instance, id_only=1) + portal = instance.getPortalObject() + wf = portal.portal_workflow.getWorkflowById(self._key) + if wf.getPortalType() in ['Workflow','Interaction Workflow']: + state_id = '_'.join(wf._getWorkflowStateOf(instance, id_only=1).split('_')[0:-1]) + else: + state_id = wf._getWorkflowStateOf(instance, id_only=1) warn('Translated workflow state getters, such as %s are deprecated' % self._id, DeprecationWarning) return portal.Localizer.erp5_ui.gettext(state_id).encode('utf8') @@ -121,11 +116,7 @@ class TranslatedTitleGetter(TitleGetter): portal = instance.getPortalObject() localizer = portal.Localizer wf_id = self._key - try: - erp5Workflow_module = instance.getPortalObject()._getOb("workflow_module", None) - wf = erp5Workflow_module._getOb(self._key) ### _getObjectByRef - except: - wf = portal.portal_workflow.getWorkflowById(wf_id) + wf = portal.portal_workflow.getWorkflowById(wf_id) selected_language = localizer.get_selected_language() state_title = wf._getWorkflowStateOf(instance).title -- 2.30.9