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" };