From c610bb8d3ac18e1dd28965f55f60de61aa7ba7db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 2 May 2021 10:59:12 +0200 Subject: [PATCH] Store only once record removed or deleted issue10236 review351891002 --- tryton/gui/window/view_form/model/group.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tryton/gui/window/view_form/model/group.py b/tryton/gui/window/view_form/model/group.py index c504312bac..093337a7a4 100644 --- a/tryton/gui/window/view_form/model/group.py +++ b/tryton/gui/window/view_form/model/group.py @@ -416,23 +416,25 @@ class Group(SignalEvent, list): 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)