diff --git a/product/ERP5Type/CopySupport.py b/product/ERP5Type/CopySupport.py index 1da631830fe875085273fb0f932bc81652e057ae..ee9876ca72910db537b715c1fa1c60e6f21fd4f9 100755 --- a/product/ERP5Type/CopySupport.py +++ b/product/ERP5Type/CopySupport.py @@ -188,19 +188,27 @@ class CopyContainer: self.notifyWorkflowCreated() # Add info about copy to edit workflow - pw = self.restrictedTraverse("portal_workflow") - copied_item_list = _cb_decode(get_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 + REQUEST = get_request() + if REQUEST.get('__cp', None) : + pw = self.restrictedTraverse("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 + else : + source_item = '/'.join(copied_item_list[0]) + try : + pw.doActionFor(self_base, 'copy', wf_id='edit_workflow', comment='Object copied from %s' % source_item) + except : + LOG('manage_afterPaste :', 0, '''Impossible to call transition 'copy' of 'edit_workflow' for %s''' % self.getRelativeUrl()) else : - source_item = '/'.join(copied_item_list[0]) - try : - pw.doActionFor(self_base, 'copy', wf_id='edit_workflow', comment='Object copied from %s' % source_item) - except : - LOG('manage_afterPaste :', 0, '''Impossible to call transition 'copy' of 'edit_workflow' for %s''' % self.getRelativeUrl()) + try : + pw.doActionFor(self_base, 'copy', wf_id='edit_workflow', comment='Object copied as %s' % item.getId()) + except : + LOG('manage_afterPaste :', 0, '''Impossible to call transition 'copy' of 'edit_workflow' for %s''' % self.getRelativeUrl()) + self.__recurse('manage_afterClone', item) # Reindex object