Reviewers: ,
Please review this at http://codereview.tryton.org/192003/ Affected files: M proteus/__init__.py Index: proteus/__init__.py =================================================================== --- a/proteus/__init__.py +++ b/proteus/__init__.py @@ -711,8 +711,12 @@ for vals in value.get('add', []): relation = Model.get(self._fields[field]['relation'], self._config) + record = relation() + for i, j in vals.iteritems(): + record._values[i] = j + record._changed.add(i) # append without signal - list.append(getattr(self, field), relation(**vals)) + list.append(getattr(self, field), record) for vals in value.get('update', []): if 'id' not in vals: continue @@ -745,8 +749,6 @@ self._on_change_set(field, value) for field, value in later.iteritems(): self._on_change_set(field, value) - if self._parent: - self._parent._changed.add(self._parent_field_name) for field, definition in self._fields.iteritems(): if not definition.get('on_change_with'): continue @@ -759,6 +761,9 @@ res = getattr(self._proxy, 'on_change_with_%s' % field)(args, context) self._on_change_set(field, res) + if self._parent: + self._parent._changed.add(self._parent_field_name) + self._parent._on_change(self._parent_field_name) class Wizard(object): -- [email protected] mailing list
