Reviewers: ,
Please review this at http://codereview.tryton.org/321001/ Affected files: M proteus/__init__.py Index: proteus/__init__.py =================================================================== --- a/proteus/__init__.py +++ b/proteus/__init__.py @@ -720,11 +720,8 @@ return res def _on_change_set(self, field, value): - if self._fields[field]['type'] in ('one2many', 'many2many'): - if isinstance(value, (list, tuple)): - self._values[field] = value - self._changed.add(field) - return + if (self._fields[field]['type'] in ('one2many', 'many2many') + and not isinstance(value, (list, tuple))): to_remove = [] if value and value.get('remove'): for record_id in value['remove']: @@ -740,6 +737,8 @@ self._config) record = relation() for i, j in vals.iteritems(): + if '.' in i: + continue record._values[i] = j record._changed.add(i) # append without signal @@ -750,11 +749,13 @@ for record in getattr(self, field): if record.id == vals['id']: for i, j in vals.iteritems(): + if '.' in i: + continue record._values[i] = j record._changed.add(i) else: self._values[field] = value - self._changed.add(field) + self._changed.add(field) def _on_change(self, name): 'Call on_change for field' -- [email protected] mailing list
