Set parent field only if signal is requested
When set_on_change adds a record, we don't need to trigger the parent on_change, otherwise it can lead to an infinite loop. issue5278 review17791002
This commit is contained in:
1 parent
0195584554
commit
2156ce79da
1 file changed
+8
-8
@@ -282,14 +282,14 @@ class Group(SignalEvent, list):
|
||||
record.signal('record-modified')
|
||||
if signal:
|
||||
self.signal('group-changed', record)
|
||||
# Set parent field to trigger on_change
|
||||
if self.parent and self.parent_name in self.fields:
|
||||
field = self.fields[self.parent_name]
|
||||
if isinstance(field, (M2OField, ReferenceField)):
|
||||
value = self.parent.id, ''
|
||||
if isinstance(field, ReferenceField):
|
||||
value = self.parent.model_name, value
|
||||
field.set_client(record, value)
|
||||
# Set parent field to trigger on_change
|
||||
if self.parent and self.parent_name in self.fields:
|
||||
field = self.fields[self.parent_name]
|
||||
if isinstance(field, (M2OField, ReferenceField)):
|
||||
value = self.parent.id, ''
|
||||
if isinstance(field, ReferenceField):
|
||||
value = self.parent.model_name, value
|
||||
field.set_client(record, value)
|
||||
return record
|
||||
|
||||
def set_sequence(self, field='sequence'):
|
||||
|
||||
Reference in new issue
Block a user