diff --git a/product/ERP5Type/CopySupport.py b/product/ERP5Type/CopySupport.py index 2d81509cc6270bb506626c71d512311f29320567..0dc3af8e741f3df8502bc5de4942b0350e351cf0 100755 --- a/product/ERP5Type/CopySupport.py +++ b/product/ERP5Type/CopySupport.py @@ -195,26 +195,26 @@ class CopyContainer: # Add info about copy to edit workflow REQUEST = get_request() - if REQUEST is not None and REQUEST.get('__cp', None) : - pw = getToolByName(self, 'portal_workflow') - copied_item_list = _cb_decode(REQUEST['__cp'])[1] - # Guess source item - for c_item in copied_item_list: - if c_item[-1] in item.getId(): - source_item = '/'.join(c_item) - break + pw = getToolByName(self, 'portal_workflow') + if 'edit_workflow' in pw.getChainFor(self): + if REQUEST is not None and REQUEST.get('__cp', None) : + copied_item_list = _cb_decode(REQUEST['__cp'])[1] + # Guess source item + for c_item in copied_item_list: + if c_item[-1] in item.getId(): + source_item = '/'.join(c_item) + break + else: + source_item = '/'.join(copied_item_list[0]) + try: + pw.doActionFor(self, 'edit_action', wf_id='edit_workflow', comment='Object copied from %s' % source_item) + except WorkflowException: + pass else: - source_item = '/'.join(copied_item_list[0]) - try: - pw.doActionFor(self_base, 'edit_action', wf_id='edit_workflow', comment='Object copied from %s' % source_item) - except WorkflowException: - pass - else: - pw = getToolByName(self, 'portal_workflow') - try: - pw.doActionFor(self_base, 'edit_action', wf_id='edit_workflow', comment='Object copied as %s' % item.getId()) - except WorkflowException: - pass + try: + pw.doActionFor(self, 'edit_action', wf_id='edit_workflow', comment='Object copied as %s' % item.getId()) + except WorkflowException: + pass self.__recurse('manage_afterClone', item)