[FIX] web_settings_dashboard: give context to search_read planners

Before this commit, the planner section of the settings weren't translated.
This was because the context was not sent along with the search_read that fetches planners data

After this commit, the planner section is correctly translated

OPW 1881092
closes #26766
This commit is contained in:
Lucas Perais (lpe)
2018-09-10 12:04:13 +02:00
parent bb12890977
commit 8fca115b04
3 changed files with 84 additions and 0 deletions
@@ -5,6 +5,7 @@ var core = require('web.core');
var framework = require('web.framework');
var PlannerCommon = require('web.planner.common');
var PlannerDialog = PlannerCommon.PlannerDialog;
var session = require('web.session');
var Widget = require('web.Widget');
var QWeb = core.qweb;
@@ -179,6 +180,7 @@ var DashboardPlanner = Widget.extend({
return this._rpc({
model: 'web.planner',
method: 'search_read',
context: session.user_context,
})
.then(function(res) {
self.planners = res;
@@ -0,0 +1,77 @@
odoo.define('web_settings_dashboard.settings_dashboard_tests', function (require) {
"use strict";
var webSettingsDashboard = require('web_settings_dashboard');
var testUtils = require('web.test_utils');
var Widget = require('web.Widget');
var Dashboard = webSettingsDashboard.Dashboard;
function createDashboard(params) {
var widget = new Widget();
var dashboard = new Dashboard(widget);
dashboard.all_dashboards = params.dashboards || ['invitations']; // test only user invitations
testUtils.addMockEnvironment(widget, params);
var originalDestroy = Dashboard.prototype.destroy;
dashboard.destroy = function () {
dashboard.destroy = originalDestroy;
widget.destroy();
};
dashboard.appendTo($('#qunit-fixture'));
return dashboard;
}
QUnit.module('settings dashboard', function () {
QUnit.test('Dashboard Planners should show translated name of apps', function (assert) {
assert.expect(1);
var data = {
'web.planner': {
fields: {
name: {string: "Name", type: "char" },
menu_id: {string: "Menu", type: "many2one", relation: 'menu'},
data: {string: "Data", type: "char" },
},
records: [
{id:1, name: 'accounting', menu_id: 1, data: false},
],
},
menu: {
fields: {
name: {string: "Name", type: "char"},
},
records: [
{id:1, name: 'accounting'},
],
}
}
var dashboard = createDashboard({
data: data,
dashboards: ['planner'],
mockRPC: function (route, args) {
if (route === '/web_settings_dashboard/data') {
return $.when({});
}
if (route === '/web/dataset/call_kw/web.planner/search_read') {
assert.deepEqual(args.kwargs.context, {lang: 'fr_BE'},
'The language should have been passed');
}
return this._super.apply(this, arguments);
},
session: {
user_context: {lang: 'fr_BE'},
},
});
dashboard.destroy();
});
});
});
@@ -6,4 +6,9 @@
<script type="text/javascript" src="/web_settings_dashboard/static/src/js/dashboard.js"></script>
</xpath>
</template>
<template id="dashboard_qunit_suite" inherit_id="web.qunit_suite">
<xpath expr="//t[@t-set='head']" position="inside">
<script type="text/javascript" src="/web_settings_dashboard/static/tests/dashboard_tests.js"></script>
</xpath>
</template>
</odoo>