From f1d89ab81f2bb8717f35f0a0046dba0ee503c02a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 20 Jul 2011 18:59:08 +0200 Subject: [PATCH] Fix value of O2M to not add/write for deleted/removed record issue2085 review64001 --- tryton/gui/window/view_form/model/field.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py index 08ed200882..6fbe913b07 100644 --- a/tryton/gui/window/view_form/model/field.py +++ b/tryton/gui/window/view_form/model/field.py @@ -453,8 +453,12 @@ class O2MField(CharField): def get(self, record, check_load=True, readonly=True, modified=False): if record.value.get(self.name) is None: return [] + record_removed = record.value[self.name].record_removed + record_deleted = record.value[self.name].record_deleted result = [('add', [])] for record2 in record.value[self.name]: + if record2 in record_removed or record2 in record_deleted: + continue if record2.id > 0: values = record2.get(check_load=check_load, get_readonly=readonly, get_modifiedonly=modified) @@ -464,12 +468,10 @@ class O2MField(CharField): else: result.append(('create', record2.get(check_load=check_load, get_readonly=readonly))) - if record.value[self.name].record_removed: - result.append(('unlink', [x.id for x in \ - record.value[self.name].record_removed])) - if record.value[self.name].record_deleted: - result.append(('delete', [x.id for x in \ - record.value[self.name].record_deleted])) + if record_removed: + result.append(('unlink', [x.id for x in record_removed])) + if record_deleted: + result.append(('delete', [x.id for x in record_deleted])) return result def get_timestamp(self, record):