From 6c024d1ef0c9e828b09eea17f55748784232a0c9 Mon Sep 17 00:00:00 2001 From: "Lucas Perais (lpe)" Date: Thu, 7 Dec 2017 09:10:39 +0100 Subject: [PATCH] [FIX] web: give context to fetch x2m batched Before this commit M2Mtags widget did not translate. This was because no context was given to the rpc that fetched the fields Hence, the lang was not passed. After this commit, M2Mtags translate well OPW 784396 --- addons/web/static/src/js/views/basic/basic_model.js | 5 +++-- .../web/static/tests/fields/relational_fields_tests.js | 10 +++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index 416bc33f90f..1562bffdc42 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -1480,7 +1480,8 @@ var BasicModel = AbstractModel.extend({ def = this._rpc({ model: list.model, method: 'read', - args: [_.pluck(data, 'id'), fieldNames] + args: [_.pluck(data, 'id'), fieldNames], + context: record.context, }).then(function (records) { _.each(records, function (record) { list_records[record.id].data = record; @@ -2399,7 +2400,7 @@ var BasicModel = AbstractModel.extend({ model: field.relation, method: 'read', args: [ids, fieldNames], - context: {}, // FIXME + context: list.getContext() || {}, }); } else { def = $.when(_.map(ids, function (id) { diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js index 01447f46784..42148e6fe88 100644 --- a/addons/web/static/tests/fields/relational_fields_tests.js +++ b/addons/web/static/tests/fields/relational_fields_tests.js @@ -8055,7 +8055,7 @@ QUnit.module('relational_fields', { }); QUnit.test('fieldmany2many tags in editable list', function (assert) { - assert.expect(4); + assert.expect(7); this.data.partner.records[0].timmy = [12]; @@ -8063,10 +8063,18 @@ QUnit.module('relational_fields', { View: ListView, model: 'partner', data: this.data, + context: {take: 'five'}, arch:'' + '' + '' + '', + mockRPC: function (route, args) { + if (args.method === 'read' && args.model === 'partner_type') { + assert.deepEqual(args.kwargs.context, {take: 'five'}, + 'The context should be passed to the RPC'); + } + return this._super.apply(this, arguments); + } }); assert.strictEqual(list.$('.o_data_row:first .o_field_many2manytags .badge').length, 1,