From 57be37145744fbbaf0937b7ec82acb3979a23482 Mon Sep 17 00:00:00 2001 From: Mathieu Duckerts-Antoine Date: Wed, 20 Jul 2022 16:11:49 +0000 Subject: [PATCH] [FIX] web: search panel: use action context when fetching data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In SearchModel, the calls to search_panel_select_range and search_panel_select_multi_range were done without using the global context (e.g. the action context), contrarily to what is done in the legacy SearchPanelModelExtension. We fix that. closes odoo/odoo#96458 Signed-off-by: Géry Debongnie --- addons/web/static/src/search/search_model.js | 2 ++ .../static/tests/search/search_panel_tests.js | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/addons/web/static/src/search/search_model.js b/addons/web/static/src/search/search_model.js index 9e882bd7a11..583a4761b2b 100644 --- a/addons/web/static/src/search/search_model.js +++ b/addons/web/static/src/search/search_model.js @@ -1237,6 +1237,7 @@ export class SearchModel extends EventBus { [category.fieldName], { category_domain: this._getCategoryDomain(category.id), + context: this.globalContext, enable_counters: category.enableCounters, expand: category.expand, filter_domain: filterDomain, @@ -1272,6 +1273,7 @@ export class SearchModel extends EventBus { { category_domain: categoryDomain, comodel_domain: new Domain(filter.domain).toList(evalContext), + context: this.globalContext, enable_counters: filter.enableCounters, filter_domain: this._getFilterDomain(filter.id), expand: filter.expand, diff --git a/addons/web/static/tests/search/search_panel_tests.js b/addons/web/static/tests/search/search_panel_tests.js index ebe53c363c4..a9360d56dfc 100644 --- a/addons/web/static/tests/search/search_panel_tests.js +++ b/addons/web/static/tests/search/search_panel_tests.js @@ -3402,4 +3402,36 @@ QUnit.module("Search", (hooks) => { assert.deepEqual(getCategoriesContent(target), ["All", "gold", "silver"]); }); + + QUnit.test("Category with counters and filter with domain", async (assert) => { + serverData.views["partner,false,search"] = /* xml */ ` + + + + + + `; + + const { TestComponent } = makeTestComponent(); + await makeWithSearch({ + serverData, + Component: TestComponent, + resModel: "partner", + searchViewId: false, + mockRPC: (route, args) => { + if ( + ["search_panel_select_range", "search_panel_select_multi_range"].includes( + args.method + ) + ) { + assert.step(args.kwargs.context.special_key); + } + }, + context: { + special_key: "special_key", + }, + }); + + assert.verifySteps(["special_key", "special_key"]); + }); });