From 0a1bf64062c9711ba6a4280a00c21ffba4595e77 Mon Sep 17 00:00:00 2001
From: Kazuhiko Shiozaki <kazuhiko@nexedi.com>
Date: Wed, 10 Feb 2010 09:34:23 +0000
Subject: [PATCH] record only solved property.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@32399 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/Document/AcceptSolver.py | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/product/ERP5/Document/AcceptSolver.py b/product/ERP5/Document/AcceptSolver.py
index a3c925f2b4..45d43955be 100644
--- a/product/ERP5/Document/AcceptSolver.py
+++ b/product/ERP5/Document/AcceptSolver.py
@@ -84,19 +84,20 @@ class AcceptSolver(SolverMixin, ConfigurableMixin, XMLObject):
             value_dict.update({'quantity':new_quantity})
           else:
             value_dict.update({solved_property:new_value})
-        self._solveRecursively(simulation_movement, value_dict)
+        self._solveRecursively(simulation_movement, value_dict,
+                               solved_property)
         simulation_movement.expand()
     # Finish solving
     self.succeed()
 
-  def _solveRecursively(self, simulation_movement, value_dict=None):
+  def _solveRecursively(self, simulation_movement, value_dict=None,
+                        property_id=None):
     """
       Update value of the current simulation movement, and update
       his parent movement.
     """
-    for property_id in value_dict.iterkeys():
-      if not simulation_movement.isPropertyRecorded(property_id):
-        simulation_movement.recordProperty(property_id)
+    if not simulation_movement.isPropertyRecorded(property_id):
+      simulation_movement.recordProperty(property_id)
     simulation_movement.edit(**value_dict)
 
     applied_rule = simulation_movement.getParentValue()
@@ -104,4 +105,5 @@ class AcceptSolver(SolverMixin, ConfigurableMixin, XMLObject):
     if parent_movement.getPortalType() == 'Simulation Movement' and \
            not parent_movement.isFrozen():
       # backtrack to the parent movement while it is not frozen
-      self._solveRecursively(parent_movement, value_dict=value_dict)
+      self._solveRecursively(parent_movement, value_dict=value_dict,
+                             property_id=property_id)
-- 
2.30.9