[Erp5-report] r45811 jerome - in /erp5/trunk/products/ERP5: Document/ mixin/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed May 4 11:12:24 CEST 2011
Author: jerome
Date: Wed May 4 11:12:24 2011
New Revision: 45811
URL: http://svn.erp5.org?rev=45811&view=rev
Log:
As divergence tester are predicates, test if they apply on the simulation movements before explaining the divergence
Modified:
erp5/trunk/products/ERP5/Document/SolverProcess.py
erp5/trunk/products/ERP5/mixin/rule.py
Modified: erp5/trunk/products/ERP5/Document/SolverProcess.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/SolverProcess.py?rev=45811&r1=45810&r2=45811&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/SolverProcess.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/SolverProcess.py [utf8] Wed May 4 11:12:24 2011
@@ -239,17 +239,18 @@ class SolverProcess(XMLObject, ActivePro
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.explain(simulation_movement) in (None, []):
- continue
- application_list = map(lambda x:x.getRelativeUrl(),
- solver_tool.getSolverDecisionApplicationValueList(movement, divergence_tester))
- application_list.sort()
- 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
+ if divergence_tester.test(simulation_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_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
# Now build the solver decision instances based on the previous
# grouping
Modified: erp5/trunk/products/ERP5/mixin/rule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/mixin/rule.py?rev=45811&r1=45810&r2=45811&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/mixin/rule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/mixin/rule.py [utf8] Wed May 4 11:12:24 2011
@@ -243,12 +243,13 @@ class RuleMixin(Predicate):
"""
result_list = []
for divergence_tester in self._getDivergenceTesterList(
- exclude_quantity=False):
- result = divergence_tester.explain(movement)
- if isinstance(result, (list, tuple)): # for compatibility
- result_list.extend(result)
- elif result is not None:
- result_list.append(result)
+ exclude_quantity=False):
+ if divergence_tester.test(movement):
+ result = divergence_tester.explain(movement)
+ if isinstance(result, (list, tuple)): # for compatibility
+ result_list.extend(result)
+ elif result is not None:
+ result_list.append(result)
return result_list
# Placeholder for methods to override
More information about the Erp5-report
mailing list