From eec15347e9017263155b5408934dcded6ae399fe Mon Sep 17 00:00:00 2001 From: Bruno Boi Date: Tue, 8 Jun 2021 09:05:46 +0000 Subject: [PATCH] [FIX] web: wrong condition in time helpers closes odoo/odoo#71871 X-original-commit: a299fb2dd2f49edc1e5d088e6a0cd672583a76eb Signed-off-by: Aaron Bohy (aab) --- addons/web/static/src/js/core/time.js | 4 ++-- addons/web/static/src/js/fields/field_utils.js | 2 +- addons/web/static/tests/core/time_tests.js | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/core/time.js b/addons/web/static/src/js/core/time.js index b9f41813030..9a640d231c8 100644 --- a/addons/web/static/src/js/core/time.js +++ b/addons/web/static/src/js/core/time.js @@ -306,7 +306,7 @@ const dateFormatWoZeroCache = {}; */ function getLangDateFormatWoZero() { const dateFormat = getLangDateFormat(); - if (!dateFormat in dateFormatWoZeroCache) { + if (!(dateFormat in dateFormatWoZeroCache)) { dateFormatWoZeroCache[dateFormat] = dateFormat .replace('MM', 'M') .replace('DD', 'D'); @@ -320,7 +320,7 @@ const timeFormatWoZeroCache = {}; */ function getLangTimeFormatWoZero() { const timeFormat = getLangTimeFormat(); - if (!timeFormat in timeFormatWoZeroCache) { + if (!(timeFormat in timeFormatWoZeroCache)) { timeFormatWoZeroCache[timeFormat] = timeFormat .replace('HH', 'H') .replace('mm', 'm') diff --git a/addons/web/static/src/js/fields/field_utils.js b/addons/web/static/src/js/fields/field_utils.js index 7dfb92b3d19..beba1b07f50 100644 --- a/addons/web/static/src/js/fields/field_utils.js +++ b/addons/web/static/src/js/fields/field_utils.js @@ -467,7 +467,7 @@ function parseDate(value, field, options) { return false; } var datePattern = time.getLangDateFormat(); - var datePatternWoZero = datePattern.replace('MM', 'M').replace('DD', 'D'); + var datePatternWoZero = time.getLangDateFormatWoZero(); var date; const smartDate = parseSmartDateInput(value); if (smartDate) { diff --git a/addons/web/static/tests/core/time_tests.js b/addons/web/static/tests/core/time_tests.js index 3407f5f4276..54b8ccae825 100644 --- a/addons/web/static/tests/core/time_tests.js +++ b/addons/web/static/tests/core/time_tests.js @@ -1,6 +1,7 @@ odoo.define('web.time_tests', function (require) { "use strict"; +const core = require('web.core'); var time = require('web.time'); QUnit.module('core', {}, function () { @@ -145,6 +146,20 @@ QUnit.module('core', {}, function () { assert.strictEqual(time.time_to_str(date), "12:34:23"); }); + QUnit.test("Get lang datetime format", (assert) => { + assert.expect(4); + const originalParameters = Object.assign({}, core._t.database.parameters); + Object.assign(core._t.database.parameters, { + date_format: '%m/%d/%Y', + time_format: '%H:%M:%S', + }); + assert.strictEqual(time.getLangDateFormat(), "MM/DD/YYYY"); + assert.strictEqual(time.getLangDateFormatWoZero(), "M/D/YYYY"); + assert.strictEqual(time.getLangTimeFormat(), "HH:mm:ss"); + assert.strictEqual(time.getLangTimeFormatWoZero(), "H:m:s"); + Object.assign(core._t.database.parameters, originalParameters); + }); + }); }); \ No newline at end of file