From 4d86cd6cb0c6d7471721f4724159c5c25f3ba1a2 Mon Sep 17 00:00:00 2001 From: Yoshinori Okuji <yo@nexedi.com> Date: Fri, 13 Aug 2010 05:29:40 +0000 Subject: [PATCH] Revert the previous change partly, because searchRuleList omits invalidated rules, so even if searchRuleList does not return a rule, it can be due to the validation state instead of the result of a test method. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@37781 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Document/SimulationMovement.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/product/ERP5/Document/SimulationMovement.py b/product/ERP5/Document/SimulationMovement.py index 32b390b83c..e8f17dd78e 100644 --- a/product/ERP5/Document/SimulationMovement.py +++ b/product/ERP5/Document/SimulationMovement.py @@ -245,19 +245,18 @@ class SimulationMovement(Movement, PropertyRecordableMixin): sort_order='descending'): reference = rule.getReference() if reference: - applicable_rule_dict.setdefault(reference, []).append(rule) + applicable_rule_dict.setdefault(reference, rule) for applied_rule in list(self.objectValues()): rule = applied_rule.getSpecialiseValue() - if rule in applicable_rule_dict.get(rule.getReference(), ()) \ - or applied_rule._isTreeDelivered(): + if rule.test(self) or applied_rule._isTreeDelivered(): applied_rule_dict[rule.getReference()] = applied_rule else: self._delObject(applied_rule.getId()) - for reference, rule_list in applicable_rule_dict.iteritems(): + for reference, rule in applicable_rule_dict.iteritems(): if reference not in applied_rule_dict: - applied_rule = rule_list[0].constructNewAppliedRule(self, **kw) + applied_rule = rule.constructNewAppliedRule(self, **kw) applied_rule_dict[reference] = applied_rule self.setCausalityState('expanded') -- 2.30.9