[Erp5-report] r36739 kazuhiko - /erp5/trunk/products/ERP5/Document/SolverProcess.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Jun 30 15:05:16 CEST 2010
Author: kazuhiko
Date: Wed Jun 30 15:05:10 2010
New Revision: 36739
URL: http://svn.erp5.org?rev=36739&view=rev
Log:
split Solver Dicision documents per application level list and per available target solver list.
Modified:
erp5/trunk/products/ERP5/Document/SolverProcess.py
Modified: erp5/trunk/products/ERP5/Document/SolverProcess.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/SolverProcess.py?rev=36739&r1=36738&r2=36739&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/SolverProcess.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/SolverProcess.py [utf8] Wed Jun 30 15:05:10 2010
@@ -217,18 +217,22 @@ class SolverProcess(XMLObject, ActivePro
# We suppose here that movement_list is a list of
# delivery movements. Let us group decisions in such way
# that a single decision is created per divergence tester instance
- # and per application level list
+ # and per application level list and per available target solver
+ # list
solver_tool = self.getPortalObject().portal_solvers
solver_decision_dict = {}
for movement in movement_list:
for simulation_movement in movement.getDeliveryRelatedValueList():
for divergence_tester in simulation_movement.getParentValue().getSpecialiseValue()._getDivergenceTesterList(exclude_quantity=False):
- if divergence_tester.compare(simulation_movement, movement):
+ if divergence_tester.explain(simulation_movement) in (None, []):
continue
application_list = map(lambda x:x.getRelativeUrl(),
solver_tool.getSolverDecisionApplicationValueList(movement, divergence_tester))
application_list.sort()
- solver_decision_key = (divergence_tester.getRelativeUrl(), tuple(application_list))
+ solver_list = solver_tool.searchTargetSolverList(
+ divergence_tester, simulation_movement)
+ solver_list.sort(key=lambda x:x.getId())
+ solver_decision_key = (divergence_tester.getRelativeUrl(), tuple(application_list), tuple(solver_list))
movement_dict = solver_decision_dict.setdefault(solver_decision_key, {})
movement_dict[simulation_movement] = None
@@ -237,7 +241,7 @@ class SolverProcess(XMLObject, ActivePro
solver_decision_list = self.objectValues(portal_type='Solver Decision')
index = 1
for solver_decision_key, movement_dict in solver_decision_dict.items():
- causality, delivery_list = solver_decision_key
+ causality, delivery_list, solver_list = solver_decision_key
matched_solver_decision_list = [
x for x in solver_decision_list \
if x.getDeliveryList() == list(delivery_list) and \
More information about the Erp5-report
mailing list