From 8ce99b1eb11f5f5c1fc8d20818c506b080f610bd Mon Sep 17 00:00:00 2001 From: Julien Mougenot Date: Fri, 14 Jul 2023 08:12:28 +0000 Subject: [PATCH] [FIX] web: display daterange separator in readonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before this commit, a forward-ported fix regarding the display of the arrow separator in daterange fields has been incorrectly adapted to fit conflicting changes, and the separator does not appear in readonly with both date values set. This commit fixes that by restoring the proper conditions. closes odoo/odoo#128509 Signed-off-by: Géry Debongnie --- .../views/fields/datetime/datetime_field.js | 4 ++-- .../views/fields/daterange_field_tests.js | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/views/fields/datetime/datetime_field.js b/addons/web/static/src/views/fields/datetime/datetime_field.js index e478b261132..a80d66656b3 100644 --- a/addons/web/static/src/views/fields/datetime/datetime_field.js +++ b/addons/web/static/src/views/fields/datetime/datetime_field.js @@ -213,8 +213,8 @@ export class DateTimeField extends Component { shouldShowSeparator() { return ( this.state.range && - this.props.required && - (this.isEmpty(this.startDateField) || this.isEmpty(this.endDateField)) + (this.props.required || + (!this.isEmpty(this.startDateField) && !this.isEmpty(this.endDateField))) ); } diff --git a/addons/web/static/tests/views/fields/daterange_field_tests.js b/addons/web/static/tests/views/fields/daterange_field_tests.js index 99c767d2e53..294c6a50a9d 100644 --- a/addons/web/static/tests/views/fields/daterange_field_tests.js +++ b/addons/web/static/tests/views/fields/daterange_field_tests.js @@ -1074,6 +1074,27 @@ QUnit.module("Fields", (hooks) => { assert.containsNone(target, ".o_add_date"); }); + QUnit.test("related start date, required, both start date and end date set", async (assert) => { + serverData.models.partner.fields.date_end = { string: "Some Date", type: "date" }; + const [firstRecord] = serverData.models.partner.records; + firstRecord.date_end = firstRecord.date; + + await makeView({ + type: "form", + resModel: "partner", + serverData, + arch: /* xml */ ` +
+ + `, + resId: 1, + }); + + assert.strictEqual(getInputs()[0].value, "02/03/2017"); + assert.containsOnce(target, ".fa-long-arrow-right"); + assert.strictEqual(getInputs()[1].value, "02/03/2017"); + }); + QUnit.test("list daterange with start date and empty end date", async (assert) => { serverData.models.partner.fields.date_end = { string: "Some Date", type: "date" };