diff --git a/addons/web/static/src/js/control_panel/search_utils.js b/addons/web/static/src/js/control_panel/search_utils.js index cd4ae869651..b8dc29edefc 100644 --- a/addons/web/static/src/js/control_panel/search_utils.js +++ b/addons/web/static/src/js/control_panel/search_utils.js @@ -287,8 +287,8 @@ odoo.define('web.searchUtils', function (require) { const date = referenceMoment.clone().set(setParam).add(addParam || {}); // compute domain - let leftBound = date.clone().startOf(granularity); - let rightBound = date.clone().endOf(granularity); + let leftBound = date.clone().locale('en').startOf(granularity); + let rightBound = date.clone().locale('en').endOf(granularity); if (fieldType === 'date') { leftBound = leftBound.format('YYYY-MM-DD'); rightBound = rightBound.format('YYYY-MM-DD'); diff --git a/addons/web/static/tests/control_panel/search_utils_tests.js b/addons/web/static/tests/control_panel/search_utils_tests.js index 60a7ae5089d..ab7ef429ca9 100644 --- a/addons/web/static/tests/control_panel/search_utils_tests.js +++ b/addons/web/static/tests/control_panel/search_utils_tests.js @@ -332,5 +332,31 @@ odoo.define('web.search_utils_tests', function (require) { testUtils.mock.unpatch(_t.database.db); testUtils.mock.unpatch(_t.database.parameters); }); + + QUnit.test("Moment.js localization does not affect formatted domain dates", async function (assert) { + assert.expect(1); + + const unpatchDate = patchDate(2020, 5, 1, 13, 0, 0); + const initialLocale = moment.locale(); + moment.defineLocale('addoneForTest', { + postformat: function (string) { + return string.replace(/\d/g, match => (1 + parseInt(match)) % 10); + } + }); + const referenceMoment = moment().locale('addoneForTest'); + + assert.deepEqual( + constructDateDomain(referenceMoment, 'date_field', 'date', ['this_month', 'this_year']), + { + domain: `["&", ["date_field", ">=", "2020-06-01"], ["date_field", "<=", "2020-06-30"]]`, + description: "June 3131", + }, + "Numbers in domain should not use addoneForTest locale" + ); + + moment.locale(initialLocale); + moment.updateLocale("addoneForTest", null); + unpatchDate(); + }); }); });