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)