diff --git a/addons/web/static/src/search/filter_menu/custom_filter_item.js b/addons/web/static/src/search/filter_menu/custom_filter_item.js index 48c08085521..3f8094f9146 100644 --- a/addons/web/static/src/search/filter_menu/custom_filter_item.js +++ b/addons/web/static/src/search/filter_menu/custom_filter_item.js @@ -313,7 +313,10 @@ export class CustomFilterItem extends Component { } catch (_err) { // Parsing error: nothing is done } - ev.target.value = condition.displayedValue; + // Only reset the target's value if it is not a selection field. + if (field.type !== "selection") { + ev.target.value = condition.displayedValue; + } } } diff --git a/addons/web/static/tests/search/custom_filter_item_tests.js b/addons/web/static/tests/search/custom_filter_item_tests.js index 0eb62991aa1..abf27e93fca 100644 --- a/addons/web/static/tests/search/custom_filter_item_tests.js +++ b/addons/web/static/tests/search/custom_filter_item_tests.js @@ -336,7 +336,7 @@ QUnit.module("Search", (hooks) => { }); QUnit.test("selection field: default and updated value", async function (assert) { - assert.expect(10); + assert.expect(11); const controlPanel = await makeWithSearch({ serverData, @@ -370,6 +370,11 @@ QUnit.module("Search", (hooks) => { await toggleAddCustomFilter(target); await editConditionField(target, 0, "color"); await editConditionValue(target, 0, "white"); + assert.strictEqual( + target.querySelector(".o_generator_menu_value input,.o_generator_menu_value select") + .value, + "white" + ); await applyFilter(target); assert.deepEqual(getFacetTexts(target), ['Color is "white"']);