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
