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 1703cec6937..a0e9142e613 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 @@ -86,22 +86,22 @@ const FIELD_OPERATORS = { ], }; -function parseField(field, value, opts = {}) { +function parseField(field, value) { if (FIELD_TYPES[field.type] === "char") { return value; } const type = field.type === "id" ? "integer" : field.type; const parse = parsers.contains(type) ? parsers.get(type) : (v) => v; - return parse(value, { field, ...opts }); + return parse(value); } -function formatField(field, value, opts = {}) { +function formatField(field, value) { if (FIELD_TYPES[field.type] === "char") { return value; } const type = field.type === "id" ? "integer" : field.type; const format = formatters.contains(type) ? formatters.get(type) : (v) => v; - return format(value, { digits: field.digits, ...opts }); + return format(value, { digits: field.digits }); } export class CustomFilterItem extends Component { @@ -224,7 +224,7 @@ export class CustomFilterItem extends Component { domainValue = condition.value.map(serialize); descriptionArray.push( `"${condition.value - .map((val) => formatField(field, val, { timezone: true })) + .map((val) => formatField(field, val)) .join(" " + this.env._t("and") + " ")}"` ); } else { 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 694683ebf5b..43fe2230408 100644 --- a/addons/web/static/tests/search/custom_filter_item_tests.js +++ b/addons/web/static/tests/search/custom_filter_item_tests.js @@ -446,6 +446,30 @@ QUnit.module("Search", (hooks) => { } ); + QUnit.test("custom filter date with equal operator", async function (assert) { + patchTimeZone(-240); + patchDate(2017, 1, 22, 12, 30, 0); + + const controlPanel = await makeWithSearch({ + serverData, + resModel: "foo", + Component: ControlPanel, + searchViewId: false, + searchMenuTypes: ["filter"], + }); + + await toggleFilterMenu(target); + await toggleAddCustomFilter(target); + + await editConditionField(target, 0, "date_field"); + await editConditionOperator(target, 0, "="); + await editConditionValue(target, 0, "01/01/2017"); + await applyFilter(target); + + assert.deepEqual(getFacetTexts(target), ['A date is equal to "01/01/2017"']); + assert.deepEqual(getDomain(controlPanel), [["date_field", "=", "2017-01-01"]]); + }); + QUnit.test("custom filter datetime with equal operator", async function (assert) { assert.expect(5);