[Erp5-report] r36599 kazuhiko - /erp5/trunk/products/ERP5/Tool/SolverTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Jun 25 15:07:14 CEST 2010


Author: kazuhiko
Date: Fri Jun 25 15:07:12 2010
New Revision: 36599

URL: http://svn.erp5.org?rev=36599&view=rev
Log:
try to find appropriate target solvers only from solver category related solvers.

Modified:
    erp5/trunk/products/ERP5/Tool/SolverTool.py

Modified: erp5/trunk/products/ERP5/Tool/SolverTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/SolverTool.py?rev=36599&r1=36598&r2=36599&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/SolverTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Tool/SolverTool.py [utf8] Fri Jun 25 15:07:12 2010
@@ -200,15 +200,18 @@ class SolverTool(TypeProvider):
     # etc. same
 
   def searchTargetSolverList(self, divergence_tester,
-                             tested_base_category_list=None, **kw):
+                             simulation_movement,
+                             automatic_solver_only=False, **kw):
     """
     this method returns a list of target solvers, as predicates against
-    divergence tester.
+    simulation movement.
     """
-    domain_tool = getToolByName(self.getPortalObject(), "portal_domains")
-
-    solver_list = domain_tool.searchPredicateList(
-      context=divergence_tester, portal_type='Solver Type',
-      tested_base_category_list=tested_base_category_list, **kw)
-
-    return solver_list
+    # Target Solver only works for non-legacy testers.
+    if not interfaces.IEquivalenceTester.providedBy(divergence_tester):
+      return []
+    solver_list = divergence_tester.getSolverValueList()
+    if automatic_solver_only:
+      return [x for x in solver_list if x.isAutomaticSolver() and \
+              x.test(simulation_movement, **kw)]
+    else:
+      return [x for x in solver_list if x.test(simulation_movement, **kw)]




More information about the Erp5-report mailing list