From 33ce38d74ce4d3f85cd7dab8bb87706b4dd1c53b Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Sun, 26 Jan 2025 20:54:29 -0300 Subject: [PATCH] feat(datepicker): improve value handling --- app/apps/common/widgets/datepicker.py | 10 ++++++++-- frontend/src/application/datepicker.js | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/apps/common/widgets/datepicker.py b/app/apps/common/widgets/datepicker.py index 9b54840..1ddd871 100644 --- a/app/apps/common/widgets/datepicker.py +++ b/app/apps/common/widgets/datepicker.py @@ -148,9 +148,14 @@ class AirDateTimePickerInput(widgets.DateTimeInput): def format_value(self, value): """Format the value for display in the widget.""" - if value: + if value and isinstance(value, (datetime.date, datetime.datetime)): self.attrs["data-value"] = datetime.datetime.strftime( - value, "%Y-%m-%d %H:%M:00" + value, "%Y-%m-%dT%H:%M:00" + ) + elif value and isinstance(value, str): + value = datetime.datetime.strptime(value, "%Y-%m-%d %H:%M:00") + self.attrs["data-value"] = datetime.datetime.strftime( + value, "%Y-%m-%dT%H:%M:00" ) if value is None: @@ -195,6 +200,7 @@ class AirMonthYearPickerInput(AirDatePickerInput): # Add data attributes for AirDatepicker configuration attrs["data-now-button-txt"] = _("Today") + attrs["data-date-format"] = "MMMM yyyy" return attrs diff --git a/frontend/src/application/datepicker.js b/frontend/src/application/datepicker.js index df0ab94..07ff16c 100644 --- a/frontend/src/application/datepicker.js +++ b/frontend/src/application/datepicker.js @@ -163,8 +163,8 @@ window.MonthYearPicker = function createDynamicDatePicker(element) { let opts = {...baseOpts, ...positionConfig}; if (element.dataset.value) { - opts["selectedDates"] = [element.dataset.value]; - opts["startDate"] = [element.dataset.value]; + opts["selectedDates"] = [new Date(element.dataset.value + "T00:00:00")]; + opts["startDate"] = [new Date(element.dataset.value + "T00:00:00")]; } return new AirDatepicker(element, opts); };