[FIX] base: action - fix on_change on new record

Before this commit, if you create an automated action with trigger 'on_change'
it was not called because the run() function don't have active_id.

Now if we have onchange_self in the context but not active id, we call the
function nevertheless. (withtout active_id in context!)

closes odoo/odoo#27167
This commit is contained in:
Jeremy Kersten
2018-09-22 21:02:30 +00:00
parent ee96c84a60
commit ef0f9556f8
+3
View File
@@ -557,6 +557,9 @@ class IrActionsServer(models.Model):
active_id = self._context.get('active_id')
if not active_id and self._context.get('onchange_self'):
active_id = self._context['onchange_self']._origin.id
if not active_id: # onchange on new record
func = getattr(self, 'run_action_%s' % action.state)
res = func(action, eval_context=eval_context)
active_ids = self._context.get('active_ids', [active_id] if active_id else [])
for active_id in active_ids:
# run context dedicated to a particular active_id