changeset ab4e4fac8f3a in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset&node=ab4e4fac8f3a
description:
Store only once record removed or deleted
issue10236
review351891002
diffstat:
tryton/gui/window/view_form/model/group.py | 20 +++++++++++---------
1 files changed, 11 insertions(+), 9 deletions(-)
diffs (38 lines):
diff -r 0d206fa417ff -r ab4e4fac8f3a tryton/gui/window/view_form/model/group.py
--- a/tryton/gui/window/view_form/model/group.py Sun May 02 10:30:14
2021 +0200
+++ b/tryton/gui/window/view_form/model/group.py Sun May 02 10:59:12
2021 +0200
@@ -416,23 +416,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)