diff --git a/addons/web/static/src/views/relational_model.js b/addons/web/static/src/views/relational_model.js index e49b4291bb2..0295b0afbd9 100644 --- a/addons/web/static/src/views/relational_model.js +++ b/addons/web/static/src/views/relational_model.js @@ -471,6 +471,7 @@ export class Record extends DataPoint { return { // ... ...this.dataContext, + ...this.context, active_id: this.resId || false, active_ids: this.resId ? [this.resId] : [], active_model: this.resModel, diff --git a/addons/web/static/tests/views/list_view_tests.js b/addons/web/static/tests/views/list_view_tests.js index 05113f77cb5..434c438ce62 100644 --- a/addons/web/static/tests/views/list_view_tests.js +++ b/addons/web/static/tests/views/list_view_tests.js @@ -15780,4 +15780,30 @@ QUnit.module("Views", (hooks) => { ["Value 3", "Value 2", "Value 1", "Value 1"] ); }); + + QUnit.test("view's context is passed down as evalContext", async (assert) => { + await makeView({ + type: "list", + resModel: "foo", + serverData, + context: { + default_global_key: "some_value", + }, + arch: ` + + + + `, + mockRPC(_, args) { + if (args.method === "name_search") { + assert.step(`name_search`); + assert.deepEqual(args.kwargs.args, [["someField", "=", "some_value"]]); + } + }, + }); + + await click(target, ".o_data_row:nth-child(1) td.o_list_many2one"); + await click(target, ".o_field_many2one_selection .o-autocomplete--input"); + assert.verifySteps(["name_search"]); + }); });