changeset e48a5ab0852f in tryton:5.6
details: https://hg.tryton.org/tryton?cmd=changeset&node=e48a5ab0852f
description:
        Store only once record removed or deleted

        issue10236
        review351891002
        (grafted from ab4e4fac8f3a7bf65c381b77e80720055580439d)
diffstat:

 tryton/gui/window/view_form/model/group.py |  20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diffs (38 lines):

diff -r f5a250ad2b4f -r e48a5ab0852f tryton/gui/window/view_form/model/group.py
--- a/tryton/gui/window/view_form/model/group.py        Fri Apr 30 13:29:22 
2021 +0200
+++ b/tryton/gui/window/view_form/model/group.py        Sun May 02 10:59:12 
2021 +0200
@@ -399,23 +399,25 @@
     def remove(self, record, remove=False, modified=True, signal=True,
             force_remove=False):
         idx = self.index(record)
-        if self[idx].id >= 0:
+        if record.id >= 0:
             if remove:
-                if self[idx] in self.record_deleted:
-                    self.record_deleted.remove(self[idx])
-                self.record_removed.append(self[idx])
+                if record in self.record_deleted:
+                    self.record_deleted.remove(record)
+                if record not in self.record_removed:
+                    self.record_removed.append(record)
             else:
-                if self[idx] in self.record_removed:
-                    self.record_removed.remove(self[idx])
-                self.record_deleted.append(self[idx])
+                if record in self.record_removed:
+                    self.record_removed.remove(record)
+                if record not in self.record_deleted:
+                    self.record_deleted.append(record)
         if record.parent:
             record.parent.modified_fields.setdefault('id')
             record.parent.signal('record-modified')
         if modified:
             record.modified_fields.setdefault('id')
             record.signal('record-modified')
-        if self[idx].id < 0 or force_remove:
-            self._remove(self[idx])
+        if record.id < 0 or force_remove:
+            self._remove(record)
 
         if len(self):
             self.current_idx = min(idx, len(self) - 1)

Reply via email to