From 85b3d7d257deea5d8d7445395e19efbd5bbad9e8 Mon Sep 17 00:00:00 2001 From: luvi Date: Thu, 6 Oct 2022 09:34:33 +0000 Subject: [PATCH] [FIX] web: open date(time) picker on label click This commit fixes the behavior of date, datetime and daterange fields. It was no longer possible to open the date/datetime picker by clicking on the corresponding label, since the inputs were missing the id attribute associated with the label. Now, it is possible again, and hovering the label will correctly highlight the input border of the field. Tests have been added too, to make sure this works properly. closes odoo/odoo#102742 X-original-commit: 0e35d2b995165cfcb50db7eaec44cce7547eb4e4 Signed-off-by: Aaron Bohy (aab) Signed-off-by: Luca Vitali --- .../static/src/core/datepicker/datepicker.js | 2 ++ .../static/src/core/datepicker/datepicker.xml | 1 + .../src/views/fields/date/date_field.xml | 1 + .../fields/daterange/daterange_field.xml | 2 +- .../views/fields/datetime/datetime_field.xml | 1 + .../tests/views/fields/date_field_tests.js | 21 ++++++++++++++++ .../views/fields/daterange_field_tests.js | 24 +++++++++++++++++++ .../views/fields/datetime_field_tests.js | 21 ++++++++++++++++ 8 files changed, 72 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/core/datepicker/datepicker.js b/addons/web/static/src/core/datepicker/datepicker.js index 599558b3e74..6a39dc93f78 100644 --- a/addons/web/static/src/core/datepicker/datepicker.js +++ b/addons/web/static/src/core/datepicker/datepicker.js @@ -268,6 +268,7 @@ DatePicker.defaultProps = { today: "fa fa-calendar-check-o", up: "fa fa-chevron-up", }, + inputId: "", maxDate: DateTime.fromObject({ year: 9999, month: 12, day: 31 }), minDate: DateTime.fromObject({ year: 1000 }), useCurrent: false, @@ -305,6 +306,7 @@ DatePicker.props = { }, optional: true, }, + inputId: { type: String, optional: true }, keyBinds: { validate: (kb) => typeof kb === "object" || kb === null, optional: true }, locale: { type: String, optional: true }, maxDate: { type: DateTime, optional: true }, diff --git a/addons/web/static/src/core/datepicker/datepicker.xml b/addons/web/static/src/core/datepicker/datepicker.xml index 66665ca7c52..31eb05907d9 100644 --- a/addons/web/static/src/core/datepicker/datepicker.xml +++ b/addons/web/static/src/core/datepicker/datepicker.xml @@ -7,6 +7,7 @@ diff --git a/addons/web/static/src/views/fields/daterange/daterange_field.xml b/addons/web/static/src/views/fields/daterange/daterange_field.xml index 4632b869f16..0380d637b15 100644 --- a/addons/web/static/src/views/fields/daterange/daterange_field.xml +++ b/addons/web/static/src/views/fields/daterange/daterange_field.xml @@ -6,7 +6,7 @@ - + diff --git a/addons/web/static/src/views/fields/datetime/datetime_field.xml b/addons/web/static/src/views/fields/datetime/datetime_field.xml index ea08911fde1..de6b6103ada 100644 --- a/addons/web/static/src/views/fields/datetime/datetime_field.xml +++ b/addons/web/static/src/views/fields/datetime/datetime_field.xml @@ -9,6 +9,7 @@ diff --git a/addons/web/static/tests/views/fields/date_field_tests.js b/addons/web/static/tests/views/fields/date_field_tests.js index a26b6cc2179..a777c3254ef 100644 --- a/addons/web/static/tests/views/fields/date_field_tests.js +++ b/addons/web/static/tests/views/fields/date_field_tests.js @@ -349,6 +349,27 @@ QUnit.module("Fields", (hooks) => { ); }); + QUnit.test("DateField with label opens datepicker on click", async function (assert) { + await makeView({ + type: "form", + resModel: "partner", + resId: 1, + serverData, + arch: ` +
+