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

Reply via email to