Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[FIX] board: translate custom views according to current user
forward port of 62cbc5f

Have a user in English, put a sale report as "favorite" (pinned to dashboard app)
Change the user's language

Before this commit, the pinned view was in English (because it was recorded that way)

After this commit, the pinned view is in the user's language.

OPW 1890664
closes #27799
  • Loading branch information
kebeclibre committed Oct 16, 2018
1 parent 121fb6f commit a7732bb
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
3 changes: 2 additions & 1 deletion addons/board/static/src/js/board_view.js
Expand Up @@ -10,6 +10,7 @@ var FormController = require('web.FormController');
var FormRenderer = require('web.FormRenderer');
var FormView = require('web.FormView');
var pyUtils = require('web.pyeval'); // do not forwardport this to 12.0
var session = require('web.session');
var viewRegistry = require('web.view_registry');

var _t = core._t;
Expand Down Expand Up @@ -246,7 +247,7 @@ var BoardRenderer = FormRenderer.extend({
// the action does not exist anymore
return $.when();
}
var rawContext = new Context(params.context, action.context);
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];
Expand Down
41 changes: 41 additions & 0 deletions addons/board/static/tests/dashboard_tests.js
Expand Up @@ -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 pyeval = require('web.pyeval');

var createActionManager = testUtils.createActionManager;
var createView = testUtils.createView;
Expand Down Expand Up @@ -742,4 +743,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(pyeval.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();
});

});

0 comments on commit a7732bb

Please sign in to comment.