Use record from group when setting O2M from values

Closes #11951
This commit is contained in:
Nicolas Évrard
2022-12-23 23:54:21 +01:00
parent 132a3ba5b5
commit 2b6801f02c
2 changed files with 16 additions and 2 deletions
+9 -1
View File
@@ -2159,7 +2159,15 @@
group.load(value, modified || default_);
} else {
for (const vals of value) {
var new_record = group.new_(false);
var new_record;
if ('id' in vals) {
new_record = group.get(vals.id);
if (!new_record) {
new_record = group.new_(false, vals.id);
}
} else {
new_record = group.new_(false);
}
if (default_) {
// Don't validate as parent will validate
new_record.set_default(vals, false, false);
@@ -689,7 +689,13 @@ class O2MField(Field):
group.load(value, modified=modified or default)
else:
for vals in value:
new_record = record.value[self.name].new(default=False)
if 'id' in vals:
new_record = group.get(vals['id'])
if not new_record:
new_record = group.new(
default=False, obj_id=vals['id'])
else:
new_record = group.new(default=False)
if default:
# Don't validate as parent will validate
new_record.set_default(