Remove id to on_change calls that are cached

issue8234
review275131002
This commit is contained in:
Cédric Krier committed 2019-04-08 10:14:39 +02:00
1 parent a28a914142
commit 5c6d71f72c
2 files changed
+22 -6

No files matched your search

+1 -1
View File
@@ -52,7 +52,7 @@ class SelectionMixin(object):
if 'relation' not in self.attrs:
change_with = self.attrs.get('selection_change_with') or []
value = record._get_on_change_args(change_with)
del value['id']
value.pop('id', None)
self.init_selection(value)
self.filter_selection(domain, record, field)
else:
+21 -5
View File
@@ -513,7 +513,6 @@ class Record(SignalEvent):
scope = scope[i]
else:
res[arg] = scope
res['id'] = self.id
return res
def on_change(self, fieldnames):
@@ -526,8 +525,16 @@ class Record(SignalEvent):
if values:
try:
changes = RPCExecute('model', self.model_name, 'on_change',
values, fieldnames, context=self.get_context())
if len(fieldnames) == 1:
fieldname, = fieldnames
changes = []
changes.append(RPCExecute(
'model', self.model_name, 'on_change_' + fieldname,
values, context=self.get_context()))
else:
changes = RPCExecute(
'model', self.model_name, 'on_change',
values, fieldnames, context=self.get_context())
except RPCException:
return
for change in changes:
@@ -555,8 +562,17 @@ class Record(SignalEvent):
self.value.pop(fieldname + '.', None)
if fieldnames:
try:
result = RPCExecute('model', self.model_name, 'on_change_with',
values, list(fieldnames), context=self.get_context())
if len(fieldnames) == 1:
fieldname, = fieldnames
result = {}
result[fieldname] = RPCExecute(
'model', self.model_name,
'on_change_with_' + fieldname,
values, context=self.get_context())
else:
result = RPCExecute(
'model', self.model_name, 'on_change_with',
values, list(fieldnames), context=self.get_context())
except RPCException:
return
self.set_on_change(result)