diff --git a/myproject/orders/static/orders/js/date_filter.js b/myproject/orders/static/orders/js/date_filter.js
index 2182aeb..c950165 100644
--- a/myproject/orders/static/orders/js/date_filter.js
+++ b/myproject/orders/static/orders/js/date_filter.js
@@ -365,6 +365,50 @@ class DateCarousel {
this.boundClearDate = this.clearDate.bind(this);
clearBtn.addEventListener('click', this.boundClearDate);
}
+
+ // Календарный выбор даты
+ const calendarBtn = filterContainer.querySelector('.calendar-picker-btn');
+ const calendarInput = filterContainer.querySelector('.calendar-picker-input');
+ if (calendarBtn && calendarInput) {
+ calendarBtn.removeEventListener('click', this.boundOpenCalendar);
+ this.boundOpenCalendar = () => {
+ if (calendarInput.showPicker) {
+ calendarInput.showPicker();
+ } else {
+ calendarInput.click();
+ }
+ };
+ calendarBtn.addEventListener('click', this.boundOpenCalendar);
+
+ calendarInput.removeEventListener('change', this.boundCalendarSelect);
+ this.boundCalendarSelect = this.selectFromCalendar.bind(this);
+ calendarInput.addEventListener('change', this.boundCalendarSelect);
+ }
+ }
+
+ /**
+ * Выбор даты через календарь
+ */
+ selectFromCalendar(event) {
+ const selectedDate = event.target.value;
+ if (!selectedDate) return;
+
+ const date = new Date(selectedDate);
+ date.setHours(0, 0, 0, 0);
+
+ const formattedDate = this.formatDate(date);
+ this.minInput.value = formattedDate;
+ this.maxInput.value = formattedDate;
+
+ this.centerDate = date;
+ this.saveCenterDate();
+ this.render();
+ this.attachTodayHandler();
+
+ const form = this.minInput.closest('form');
+ if (form) {
+ form.submit();
+ }
}
/**
diff --git a/myproject/orders/templates/orders/components/date_range_filter.html b/myproject/orders/templates/orders/components/date_range_filter.html
index 96746b1..d9ec9fb 100644
--- a/myproject/orders/templates/orders/components/date_range_filter.html
+++ b/myproject/orders/templates/orders/components/date_range_filter.html
@@ -32,6 +32,14 @@
title="Завтра">
Завтра
+
+