Reviewers: ,


Please review this at http://codereview.tryton.org/221006/

Affected files:
  M trytond/wizard/wizard.py


Index: trytond/wizard/wizard.py
===================================================================

--- a/trytond/wizard/wizard.py
+++ b/trytond/wizard/wizard.py
@@ -152,6 +152,7 @@
         self._model = model
         self._data = data
         self.__cache = {}
+       self.dirty = False

     def __getattr__(self, name):
         if name in self.__cache:
@@ -182,6 +183,7 @@
                     or name in self._model._inherit_fields)):
             self.__cache.pop(name, None)
             self._data[name] = value
+           self.dirty = True
         else:
             super(_SessionRecord, self).__setattr__(name, value)

@@ -204,12 +206,18 @@
                 setattr(self, state_name,
                     _SessionRecord(model, self.data[state_name]))

+    @property
+    def dirty(self):
+        return any(getattr(self, state_name).dirty
+           for state_name in self.data)
+
     def save(self):
         "Save the session in database"
         session_obj = Pool().get('ir.session.wizard')
-        session_obj.write(self._session.id, {
-                'data': json.dumps(self.data, cls=JSONEncoder),
-                })
+       if self.dirty:
+            session_obj.write(self._session.id, {
+                    'data': json.dumps(self.data, cls=JSONEncoder),
+                    })


 class Wizard(WarningErrorMixin, URLMixin):



--
[email protected] mailing list

Reply via email to