From a37bad205b13cec4f19f8e84e28801278e3e36ca Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Mon, 26 May 2014 17:05:02 +0200 Subject: [PATCH] [FIX] web: on launching ir_actions_act_window, reset the active_* params if the target is current This commit is related to 8d496399336b4a97200f6f7b5907ed1c7b99970c and b88755c4317ac61fc8d0533162d4ed19082f3fab When hitting buttons of type object, the active_model and active_id(s) were kept, and, therefore, when calling a feature using the active* args, this feature used the active* args from the previous action. Nevertheless, concerning wizards, the active* args should be indeed the active* args of the previous action, as wizards expects to have the active* args from the previous action. Thus, we reset these active* args only when this is not a wizard (target === 'current') For example, from a sales order, hit the 'view invoice' button, and on the invoice, hit the 'send by email' button: The active_id in the send by email wizard were the id of the sale order, not of the invoice --- addons/web/static/src/js/views.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index dc9f706d40e..228a0b3e8f2 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -436,6 +436,16 @@ instance.web.ActionManager = instance.web.Widget.extend({ ir_actions_act_window: function (action, options) { var self = this; + if (action.target === 'current'){ + action.context['active_model'] = action.res_model; + if (action.res_id){ + action.context['active_id'] = action.res_id; + action.context['active_ids'] = [action.res_id]; + } else{ + delete action.context['active_id']; + delete action.context['active_ids']; + } + } return this.ir_actions_common({ widget: function () { return new instance.web.ViewManagerAction(self, action); }, action: action,