From c1eec46f7e58f8bbb1be444c6201218686091ac3 Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Thu, 18 Jul 2019 14:20:55 +0000 Subject: [PATCH] [FIX] web: FieldDomain: open selection with field context Closes #33658 closes odoo/odoo#34989 Signed-off-by: VincentSchippefilt --- .../web/static/src/js/fields/basic_fields.js | 1 + .../static/tests/fields/basic_fields_tests.js | 30 +++++++++++++++++++ .../web/static/tests/helpers/mock_server.js | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 83b6d885898..11da78c89e0 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -3036,6 +3036,7 @@ var FieldDomain = AbstractField.extend({ new view_dialogs.SelectCreateDialog(this, { title: _t("Selected records"), res_model: this._domainModel, + context: this.record.getContext({fieldName: this.name, viewType: this.viewType}), domain: this.value || "[]", no_create: true, readonly: true, diff --git a/addons/web/static/tests/fields/basic_fields_tests.js b/addons/web/static/tests/fields/basic_fields_tests.js index 8d5dde14bfe..d537698432f 100644 --- a/addons/web/static/tests/fields/basic_fields_tests.js +++ b/addons/web/static/tests/fields/basic_fields_tests.js @@ -5743,6 +5743,36 @@ QUnit.module('basic_fields', { form.destroy(); }); + QUnit.test('field context is propagated when opening selection', async function (assert) { + assert.expect(1); + + this.data.partner.records[0].foo = "[]"; + + var form = await createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: ` +
+ + + `, + archs: { + 'partner_type,false,list': '', + 'partner_type,3,list': '', + 'partner_type,false,search': '', + }, + res_id: 1, + }); + + await testUtils.dom.click(form.$(".o_domain_show_selection_button")); + + assert.strictEqual($('.modal .o_data_row').text(), '1214', + "should have picked the correct list view"); + + form.destroy(); + }); + QUnit.module('FieldProgressBar'); QUnit.test('Field ProgressBar: max_value should update', async function (assert) { diff --git a/addons/web/static/tests/helpers/mock_server.js b/addons/web/static/tests/helpers/mock_server.js index 41ae61c44f8..e56a41dd034 100644 --- a/addons/web/static/tests/helpers/mock_server.js +++ b/addons/web/static/tests/helpers/mock_server.js @@ -662,7 +662,7 @@ var MockServer = Class.extend({ var viewID = view_descr[0] || false; var viewType = view_descr[1]; if (!viewID) { - var contextKey = viewType + '_view_ref'; + var contextKey = (viewType === 'list' ? 'tree' : viewType) + '_view_ref'; if (contextKey in kwargs.context) { viewID = kwargs.context[contextKey]; }