feat: Добавить валидацию для заполнения одного поля корректировки цены

Реализована логика чтобы только одно из четырёх полей корректировки цены
можно было заполнить одновременно:

JavaScript валидация:
- При заполнении одного поля остальные 3 автоматически отключаются
- При попытке заполнить два поля одновременно:
  - Оставляется только первое заполненное
  - Остальные очищаются и помечаются как ошибка
  - При очистке всех полей они снова активируются

CSS стили:
- Disabled поля: серый фон, пониженная прозрачность, запрещённый курсор
- Invalid поля: красная граница и shadow (Bootstrap стиль)

Валидация работает на обе стороны:
- Frontend JavaScript (instant feedback)
- Backend Python валидация (безопасность)

Файлы:
- products/templates/products/productkit_create.html
- products/templates/products/productkit_edit.html
- products/forms.py (документация)
This commit is contained in:
2025-11-02 19:40:47 +03:00
parent 2e305a810a
commit 390d547e97
3 changed files with 193 additions and 5 deletions

View File

@@ -139,7 +139,9 @@ class ProductKitForm(forms.ModelForm):
def clean(self):
"""
Валидация формы комплекта.
Проверяет что если выбран тип корректировки, указано значение.
Проверяет:
1. Что если выбран тип корректировки, указано значение
2. Что заполнено максимум одно поле корректировки (увеличение или уменьшение)
"""
cleaned_data = super().clean()