changeset bba153625edc in tryton:5.0 details: https://hg.tryton.org/tryton?cmd=changeset&node=bba153625edc 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 512adb5869a8 -r bba153625edc 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 @@ -394,23 +394,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)