diff --git a/addons/web/static/src/webclient/actions/action_service.js b/addons/web/static/src/webclient/actions/action_service.js index 2e7fe754d98..f5bfcc243ae 100644 --- a/addons/web/static/src/webclient/actions/action_service.js +++ b/addons/web/static/src/webclient/actions/action_service.js @@ -471,8 +471,8 @@ function makeActionManager(env) { } } - if (context.active_id || context.active_ids || context.search_disable_custom_filters) { - viewProps.activateFavorite = false; // not sure --> check logic + if (context.search_disable_custom_filters) { + viewProps.activateFavorite = false; } // view specific diff --git a/addons/web/static/tests/webclient/actions/window_action_tests.js b/addons/web/static/tests/webclient/actions/window_action_tests.js index 48ea011465c..162645f21f0 100644 --- a/addons/web/static/tests/webclient/actions/window_action_tests.js +++ b/addons/web/static/tests/webclient/actions/window_action_tests.js @@ -1632,6 +1632,33 @@ QUnit.module("ActionManager", (hooks) => { } ); + QUnit.test("action with default favorite and context.active_id", async function (assert) { + assert.expect(4); + + serverData.actions[3].context = { active_id: 4, active_ids: [4], active_model: "whatever" }; + serverData.models.partner.filters = [ + { + name: "favorite filter", + id: 5, + context: "{}", + sort: "[]", + domain: '[("bar", "=", 1)]', + is_default: true, + }, + ]; + const mockRPC = (route, args) => { + if (args.method === "web_search_read") { + assert.deepEqual(args.kwargs.domain, [["bar", "=", 1]]); + } + }; + const webClient = await createWebClient({ serverData, mockRPC }); + await doAction(webClient, 3); + + assert.containsOnce(target, ".o_list_view"); + assert.containsOnce(target, ".o_searchview .o_searchview_facet"); + assert.strictEqual(target.querySelector(".o_facet_value").innerText, "favorite filter"); + }); + QUnit.test( "search menus are still available when switching between actions", async function (assert) {