Fix value of O2M to not add/write for deleted/removed record
issue2085 review64001
This commit is contained in:
1 parent
c8cc6f96eb
commit
f1d89ab81f
1 file changed
+8
-6
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user