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:
Cédric Krier committed 2016-02-02 19:07:31 +01:00
1 parent 0195584554
commit 2156ce79da
1 file changed
+8 -8
+8 -8
View File
@@ -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'):