[Erp5-report] r36885 kazuhiko - /erp5/trunk/products/ERP5/Document/

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Jul 6 11:22:36 CEST 2010


Author: kazuhiko
Date: Tue Jul  6 11:22:34 2010
New Revision: 36885

URL: http://svn.erp5.org?rev=36885&view=rev
Log:
add SolverTypeInformation.solve() that can be called with activity for temp solver process documents.

Modified:
    erp5/trunk/products/ERP5/Document/SolverProcess.py
    erp5/trunk/products/ERP5/Document/SolverTypeInformation.py

Modified: erp5/trunk/products/ERP5/Document/SolverProcess.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/SolverProcess.py?rev=36885&r1=36884&r2=36885&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/SolverProcess.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/SolverProcess.py [utf8] Tue Jul  6 11:22:34 2010
@@ -179,8 +179,16 @@ class SolverProcess(XMLObject, ActivePro
     """
     isTransitionPossible = self.getPortalObject().portal_workflow.isTransitionPossible
     for solver in self.contentValues(portal_type=self.getPortalObject().getPortalTargetSolverTypeList()):
-      if isTransitionPossible(solver, 'start_solving'):
-        solver.startSolving()
+      if solver.isTempObject():
+        solver_type = solver._getPortalTypeValue()
+        solver_type.activate(activate_kw=activate_kw).solve(
+          activate_kw=activate_kw,
+          delivery_list=solver.getDeliveryList(),
+          configuration_dict=solver.getConfigurationPropertyDict()
+          )
+      else:
+        if isTransitionPossible(solver, 'start_solving'):
+          solver.startSolving()
         solver.activate(active_process=self, activate_kw=activate_kw).solve(
           activate_kw=activate_kw)
 

Modified: erp5/trunk/products/ERP5/Document/SolverTypeInformation.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/SolverTypeInformation.py?rev=36885&r1=36884&r2=36885&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/SolverTypeInformation.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/SolverTypeInformation.py [utf8] Tue Jul  6 11:22:34 2010
@@ -215,3 +215,21 @@ class SolverTypeInformation(Predicate, E
 
     method = getattr(solver, method_id)
     return method()
+
+  def solve(self, delivery_list=None, configuration_dict=None,
+            activate_kw=None, **kw):
+    if delivery_list is None:
+      return
+    if configuration_dict is None:
+      configuration_dict = {}
+    solver_process_tool = self.getPortalObject().portal_solver_processes
+    solver_process = solver_process_tool.newContent(
+      portal_type='Solver Process',
+      temp_object=True)
+    solver = solver_process.newContent(portal_type=self.getId(),
+                                       delivery_list=delivery_list)
+    solver.updateConfiguration(**configuration_dict)
+    if self.getPortalObject().portal_workflow.isTransitionPossible(
+      solver, 'start_solving'):
+      solver.startSolving()
+    solver.solve(activate_kw=activate_kw)




More information about the Erp5-report mailing list