Улучшен интерфейс ввода даты и времени доставки

- Исправлены имена полей времени (time_from/time_to вместо delivery_time_start/end)
- Поля времени сделаны необязательными (дата остается обязательной)
- Добавлен улучшенный UI с быстрыми кнопками для даты и времени
- Поля ввода расположены в один ряд, кнопки быстрого выбора ниже
- Добавлены CSS и JS файлы для улучшенного интерфейса
- Обновлена валидация: время необязательно, но если указано одно - должно быть и другое
This commit is contained in:
2025-12-24 18:25:20 +03:00
parent d62caa924b
commit 61ce3f550d
7 changed files with 459 additions and 46 deletions

View File

@@ -146,13 +146,13 @@ class OrderForm(forms.ModelForm):
)
time_from = forms.TimeField(
required=True,
required=False,
widget=forms.TimeInput(attrs={'class': 'form-control', 'type': 'time'}),
label='Время доставки от'
)
time_to = forms.TimeField(
required=True,
required=False,
widget=forms.TimeInput(attrs={'class': 'form-control', 'type': 'time'}),
label='Время доставки до'
)
@@ -321,13 +321,13 @@ class OrderForm(forms.ModelForm):
if not delivery_date:
raise forms.ValidationError({'delivery_date': 'Необходимо указать дату доставки'})
if not time_from:
raise forms.ValidationError({'time_from': 'Необходимо указать время начала доставки'})
# Время необязательно, но если указано одно, должно быть указано и другое
if (time_from and not time_to) or (time_to and not time_from):
raise forms.ValidationError({
'time_to': 'Если указано время начала, необходимо указать и время окончания, и наоборот'
})
if not time_to:
raise forms.ValidationError({'time_to': 'Необходимо указать время окончания доставки'})
# Проверяем, что время "до" позже времени "от"
# Проверяем, что время "до" позже времени "от" (если оба указаны)
if time_from and time_to and time_from >= time_to:
raise forms.ValidationError({
'time_to': 'Время окончания доставки должно быть позже времени начала'