From 70c35728ef095a6c65ad25085a807ce4e67f6e1d Mon Sep 17 00:00:00 2001
From: Wenjie Zheng <wenjie.zheng@tiolive.com>
Date: Wed, 10 Jun 2015 09:30:26 +0000
Subject: [PATCH] WorkflowTool.py: add workflow_script reference in conversion
 codes; add a chains_by_type repair script related function.

---
 product/ERP5/Tool/WorkflowTool.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/product/ERP5/Tool/WorkflowTool.py b/product/ERP5/Tool/WorkflowTool.py
index 81bf4d94d4..b638c9c69d 100644
--- a/product/ERP5/Tool/WorkflowTool.py
+++ b/product/ERP5/Tool/WorkflowTool.py
@@ -275,6 +275,7 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool):
 
   def dc_workflow_asERP5Object(self, container, dc_workflow, temp):
     # create a temporary ERP5 Workflow
+    # instead of adding prefix toavoid id conflict, prefer to put dcworkflow in portal_trash;
     workflow_type_id = dc_workflow.__class__.__name__
     if workflow_type_id == 'DCWorkflowDefinition':
       LOG("2.a Workflow '%s' is a DCWorkflow'"%dc_workflow.id,WARNING,' in WorkflowTool.py')
@@ -442,6 +443,7 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool):
         workflow_script = workflow.newContent(id='script_'+script_id ,portal_type='Workflow Script', temp_object=temp)
         LOG("2.5 Convert workflow script '%s' of workflow '%s'"%(workflow_script.id,workflow.getTitle()),WARNING,' in WorkflowTool.py')
         workflow_script.edit(title=script.title)
+        workflow_script.default_reference = script_id
         workflow_script.setParameterSignature(script._params)
         #workflow_script.setCallableType(script.callable_type)# not defined in python script?
         workflow_script.setBody(script._body)
@@ -630,6 +632,10 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool):
         type_workflow_dict.setdefault(type_id, []).append(workflow_id_list)
     return type_workflow_dict
 
+  # For Chains By Type Repair Tool:
+  def addTypeCBT(self, pt, wf_id):
+    self._chains_by_type[pt] = self._chains_by_type[pt] + (wf_id, )
+
   def delTypeCBT(self, pt, wf_id):
     self._chains_by_type[pt] = tuple(wf for wf in self._chains_by_type[pt] if wf != wf_id)
 
-- 
2.30.9