Reviewers: ,


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

Affected files:
  M tryton/gui/window/view_form/model/group.py
  M tryton/gui/window/view_form/view/list.py


Index: tryton/gui/window/view_form/model/group.py
===================================================================
--- a/tryton/gui/window/view_form/model/group.py
+++ b/tryton/gui/window/view_form/model/group.py
@@ -228,6 +228,12 @@
             self.append(record)
         else:
             self.insert(position, record)
+        for record_rm in self.record_removed:
+            if record_rm.id == record.id:
+                self.record_removed.remove(record)
+        for record_del in self.record_deleted:
+            if record_del.id == record.id:
+                self.record_deleted.remove(record)
         self.current_idx = position
         if modified:
             record.modified_fields.setdefault('id')
Index: tryton/gui/window/view_form/view/list.py
===================================================================
--- a/tryton/gui/window/view_form/view/list.py
+++ b/tryton/gui/window/view_form/view/list.py
@@ -84,9 +84,18 @@
         group = record_pos.group
         pos = group.index(record_pos) + offset
         if group is not record.group:
+            prev_group = record.group
             record.group.remove(record, remove=True, force_remove=True)
+            # Don't remove record from previous group
+            # as the new parent will change the parent
+            # This prevent concurrency conflict
+            record.group.record_removed.remove(record)
             group.add(record)
-            record.modified_fields.setdefault(record.parent_name or 'id')
+            if not record.parent_name:
+                record.modified_fields.setdefault(prev_group.parent_name)
+                record.value[prev_group.parent_name] = False
+            else:
+                record.modified_fields.setdefault(record.parent_name)
         group.move(record, pos)

     def move_before(self, record, path):


--
[email protected] mailing list

Reply via email to