From 2d651e665c50b6dbd1e64413b677c45ba4e5a0c8 Mon Sep 17 00:00:00 2001 From: "Achraf (abz)" Date: Fri, 15 Apr 2022 06:03:31 +0000 Subject: [PATCH] [FIX] web: Remove offset only for datetime field, not date Since https://github.com/odoo/odoo/pull/87584 with `date` field, pressing enter will removes 1 day to the value. To fix it we have to ignore the offset suppression used for `datetime` opw-2818927 closes odoo/odoo#90115 X-original-commit: 46e6475708c7ba8289345c4f7c125f60fc77d08c Signed-off-by: Achraf --- addons/web/static/src/legacy/js/fields/basic_fields.js | 4 +++- addons/web/static/tests/legacy/fields/basic_fields_tests.js | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/legacy/js/fields/basic_fields.js b/addons/web/static/src/legacy/js/fields/basic_fields.js index c244adaa118..844cdf487a5 100644 --- a/addons/web/static/src/legacy/js/fields/basic_fields.js +++ b/addons/web/static/src/legacy/js/fields/basic_fields.js @@ -1001,7 +1001,9 @@ var FieldDate = InputField.extend({ let value = this.$input.val(); try { value = this._parseValue(value); - value.add(-this.getSession().getTZOffset(value), "minutes"); + if (this.field.type === "datetime") { + value.add(-this.getSession().getTZOffset(value), "minutes"); + } } catch (_err) {} await this._setValue(value); this._render(); diff --git a/addons/web/static/tests/legacy/fields/basic_fields_tests.js b/addons/web/static/tests/legacy/fields/basic_fields_tests.js index b1f5ef2a24a..e31b5e428f8 100644 --- a/addons/web/static/tests/legacy/fields/basic_fields_tests.js +++ b/addons/web/static/tests/legacy/fields/basic_fields_tests.js @@ -4675,6 +4675,11 @@ QUnit.module('basic_fields', { viewOptions: { mode: 'edit', }, + session: { + getTZOffset: function () { + return 120; + }, + }, }); const year = (new Date()).getFullYear();