[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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user