diff options
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/chrome.js | 7 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_tree.js | 8 | ||||
| -rw-r--r-- | addons/web/static/src/js/views.js | 14 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 4 |
4 files changed, 24 insertions, 9 deletions
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 2cca57f0b56..77d23d8fa53 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -1191,11 +1191,12 @@ instance.web.WebClient = instance.web.Client.extend({ var self = this; return this.rpc("/web/action/load", { action_id: options.action_id }) .then(function (result) { - var action = result; if (options.needaction) { - action.context.search_default_message_unread = true; + result.context = new instance.web.CompoundContext( + result.context, + {search_default_message_unread: true}); } - return $.when(self.action_manager.do_action(action, { + return $.when(self.action_manager.do_action(result, { clear_breadcrumbs: true, action_menu_id: self.menu.current_menu, })).fail(function() { diff --git a/addons/web/static/src/js/view_tree.js b/addons/web/static/src/js/view_tree.js index 8fd3b25ade5..4d08da385fd 100644 --- a/addons/web/static/src/js/view_tree.js +++ b/addons/web/static/src/js/view_tree.js @@ -44,7 +44,8 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie view_id: this.view_id, view_type: "tree", toolbar: this.view_manager ? !!this.view_manager.sidebar : false, - context: this.dataset.get_context() + context: instance.web.pyeval.eval( + 'context', this.dataset.get_context()) }).done(this.on_loaded); }, /** @@ -227,8 +228,9 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie return this.rpc('/web/treeview/action', { id: id, model: this.dataset.model, - context: new instance.web.CompoundContext( - this.dataset.get_context(), local_context) + context: instance.web.pyeval.eval( + 'context', new instance.web.CompoundContext( + this.dataset.get_context(), local_context)) }).then(function (actions) { if (!actions.length) { return; } var action = actions[0][2]; diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index efd5f890544..9fad16a58b0 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -265,6 +265,17 @@ instance.web.ActionManager = instance.web.Widget.extend({ return self.do_action(result, options); }); } + + // Ensure context & domain are evaluated and can be manipulated/used + if (action.context) { + action.context = instance.web.pyeval.eval( + 'context', action.context); + } + if (action.domain) { + action.domain = instance.web.pyeval.eval( + 'domain', action.domain); + } + if (!action.type) { console.error("No type for action", action); return $.Deferred().reject(); @@ -1081,7 +1092,8 @@ instance.web.Sidebar = instance.web.Widget.extend({ context: instance.web.pyeval.eval( 'context', additional_context) }).done(function(result) { - result.context = _.extend(result.context || {}, + result.context = new instance.web.CompoundContext( + result.context, additional_context); result.flags = result.flags || {}; result.flags.new_window = true; diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 1b7a5cea53a..723f6707cce 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -905,11 +905,11 @@ </li> <li t-if="widget.node.attrs.context" data-item="context"> <span class="oe_tooltip_technical_title">Context:</span> - <t t-esc="widget.node.attrs.context_string"/> + <t t-esc="widget.node.attrs.context"/> </li> <li t-if="widget.node.attrs.domain" data-item="domain"> <span class="oe_tooltip_technical_title">Domain:</span> - <t t-esc="widget.node.attrs.domain_string"/> + <t t-esc="widget.node.attrs.domain"/> </li> <li t-if="widget.node.attrs.modifiers and widget.node.attrs.modifiers != '{}'" data-item="modifiers"> <span class="oe_tooltip_technical_title">Modifiers:</span> |
