summaryrefslogtreecommitdiff
path: root/addons/board/static
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-10-22 15:39:05 +0200
committerChristophe Simonis <chs@odoo.com>2018-10-22 16:59:51 +0200
commitb81c2bce846c94b5695d680ebbc30f1cfe51e614 (patch)
tree385190eb54adfbcdf8ff437d2cc667ddd1013718 /addons/board/static
parent933165ec3afa0676de4b2f3662c4c1bb2f97efc5 (diff)
parent3c108977c1e7d9361894c38bcd253030e8097479 (diff)
[MERGE] forward port branch saas-11.4 up to 3c108977c1e
Diffstat (limited to 'addons/board/static')
-rw-r--r--addons/board/static/src/js/board_view.js6
-rw-r--r--addons/board/static/tests/dashboard_tests.js41
2 files changed, 46 insertions, 1 deletions
diff --git a/addons/board/static/src/js/board_view.js b/addons/board/static/src/js/board_view.js
index 126214cedf1..1cf27c79fe8 100644
--- a/addons/board/static/src/js/board_view.js
+++ b/addons/board/static/src/js/board_view.js
@@ -10,6 +10,7 @@ var FormController = require('web.FormController');
var FormRenderer = require('web.FormRenderer');
var FormView = require('web.FormView');
var pyUtils = require('web.py_utils');
+var session = require('web.session');
var viewRegistry = require('web.view_registry');
var _t = core._t;
@@ -246,7 +247,10 @@ var BoardRenderer = FormRenderer.extend({
// the action does not exist anymore
return $.when();
}
- var context = pyUtils.eval('context', new Context(params.context, action.context));
+ // tz and lang are saved in the custom view
+ // override the language to take the current one
+ var rawContext = new Context(params.context, action.context, {lang: session.user_context.lang});
+ var context = pyUtils.eval('context', rawContext);
var domain = params.domain || pyUtils.eval('domain', action.domain || '[]', action.context);
var viewType = params.viewType || action.views[0][1];
var view = _.find(action.views, function (descr) {
diff --git a/addons/board/static/tests/dashboard_tests.js b/addons/board/static/tests/dashboard_tests.js
index 8b148c3ebb6..42fb870458f 100644
--- a/addons/board/static/tests/dashboard_tests.js
+++ b/addons/board/static/tests/dashboard_tests.js
@@ -6,6 +6,7 @@ var BoardView = require('board.BoardView');
var ListController = require('web.ListController');
var testUtils = require('web.test_utils');
var ListRenderer = require('web.ListRenderer');
+var pyUtils = require('web.py_utils');
var createActionManager = testUtils.createActionManager;
var createView = testUtils.createView;
@@ -746,4 +747,44 @@ QUnit.test('save to dashboard actions with flag keepSearchView', function (asser
actionManager.destroy();
});
+QUnit.test("Views should be loaded in the user's language", function (assert) {
+ assert.expect(2);
+ var form = createView({
+ View: BoardView,
+ model: 'board',
+ data: this.data,
+ session: {user_context: {lang: 'fr_FR'}},
+ arch: '<form string="My Dashboard">' +
+ '<board style="2-1">' +
+ '<column>' +
+ '<action context="{\'lang\': \'en_US\'}" view_mode="list" string="ABC" name="51" domain="[]"></action>' +
+ '</column>' +
+ '</board>' +
+ '</form>',
+ mockRPC: function (route, args) {
+ if (args.method === 'load_views') {
+ assert.deepEqual(pyUtils.eval('context', args.kwargs.context), {lang: 'fr_FR'},
+ 'The views should be loaded with the correct context');
+ }
+ if (route === "/web/dataset/search_read") {
+ assert.deepEqual(args.context, {lang: 'fr_FR'},
+ 'The data should be loaded with the correct context');
+ }
+ if (route === '/web/action/load') {
+ return $.when({
+ res_model: 'partner',
+ views: [[4, 'list']],
+ });
+ }
+ return this._super.apply(this, arguments);
+ },
+ archs: {
+ 'partner,4,list':
+ '<list string="Partner"><field name="foo"/></list>',
+ },
+ });
+
+ form.destroy();
+});
+
});