diff --git a/addons/board/controllers.py b/addons/board/controllers.py
index 81557f64fa3..3bdebe1ef26 100644
--- a/addons/board/controllers.py
+++ b/addons/board/controllers.py
@@ -2,7 +2,6 @@
from xml.etree import ElementTree
import openerp
-from openerp.addons.web import nonliterals
from openerp.addons.web.controllers.main import load_actions_from_ir_values
class Board(openerp.addons.web.http.Controller):
@@ -11,16 +10,8 @@ class Board(openerp.addons.web.http.Controller):
@openerp.addons.web.http.jsonrequest
def add_to_dashboard(self, req, menu_id, action_id, context_to_save, domain, view_mode, name=''):
# FIXME move this method to board.board model
- to_eval = nonliterals.CompoundContext(context_to_save)
- to_eval.session = req.session
- ctx = dict((k, v) for k, v in to_eval.evaluate().iteritems()
- if not k.startswith('search_default_'))
- ctx['dashboard_merge_domains_contexts'] = False # TODO: replace this 6.1 workaround by attribute on
- domain = nonliterals.CompoundDomain(domain)
- domain.session = req.session
- domain = domain.evaluate()
-
- dashboard_action = load_actions_from_ir_values(req, 'action', 'tree_but_open', [('ir.ui.menu', menu_id)], False)
+ dashboard_action = load_actions_from_ir_values(
+ req, 'action', 'tree_but_open', [('ir.ui.menu', menu_id)], False)
if dashboard_action:
action = dashboard_action[0][2]
@@ -36,7 +27,7 @@ class Board(openerp.addons.web.http.Controller):
'name': str(action_id),
'string': name,
'view_mode': view_mode,
- 'context': str(ctx),
+ 'context': str(context_to_save),
'domain': str(domain)
})
column.insert(0, new_action)
@@ -45,6 +36,6 @@ class Board(openerp.addons.web.http.Controller):
'user_id': req.session._uid,
'ref_id': view_id,
'arch': arch
- }, req.session.eval_context(req.context))
+ }, req.context)
return False
diff --git a/addons/board/static/src/js/dashboard.js b/addons/board/static/src/js/dashboard.js
index eb835c43e22..13a51cc663e 100644
--- a/addons/board/static/src/js/dashboard.js
+++ b/addons/board/static/src/js/dashboard.js
@@ -375,11 +375,22 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
var domain = new instance.web.CompoundDomain(getParent.dataset.get_domain() || []);
_.each(data.contexts, context.add, context);
_.each(data.domains, domain.add, domain);
+
+ var c = instance.web.pyeval.eval('context', context);
+ for(var k in c) {
+ if (c.hasOwnProperty(k) && /^search_default_/.test(k)) {
+ delete c[k];
+ }
+ }
+ // TODO: replace this 6.1 workaround by attribute on
+ c.dashboard_merge_domains_contexts = false;
+ var d = instance.web.pyeval.eval('domain', domain);
+
this.rpc('/board/add_to_dashboard', {
menu_id: this.$el.find("select").val(),
action_id: view_parent.action.id,
- context_to_save: context,
- domain: domain,
+ context_to_save: c,
+ domain: d,
view_mode: view_parent.active_view,
name: this.$el.find("input").val()
}).done(function(r) {