Views:
- ProductKitListView: фильтр is_temporary=False
- CombinedProductListView: фильтр is_temporary=False для комплектов
- API search: фильтр is_temporary=False в поиске и популярных
Admin:
- Добавлен фильтр по is_temporary
- Добавлено отображение статуса временного комплекта в списке
- Добавлена ссылка на заказ для временных комплектов
- Добавлен раздел "Временный комплект" в fieldsets
Теперь временные комплекты не показываются в общем каталоге,
но доступны в админке и по прямой ссылке (для заказов).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
При редактировании комплекта поля корректировки цены остаются пустыми,
хотя в БД сохранены корректные значения (price_adjustment_type и value).
Исправлено:
1. Добавлен вызов validateSingleAdjustment() после заполнения полей
- Это отключает остальные поля и помечает валидные
- Реализует логику одного заполненного поля
2. Добавлено логирование в консоль браузера для отладки:
- Показывает какие значения загружены из БД
- Помогает выявить проблемы
Теперь при редактировании:
- Если есть сохранённая корректировка, она отображается
- Остальные поля автоматически отключаются
- Пересчитывается финальная цена
Файл: products/templates/products/productkit_edit.html
Был вызов KitValidator.validate_pricing_method_availability() который
пытался получить атрибут cost_calculation_info - это часть старой
системы ценообразования которая была заменена на новую.
Новая система не требует этой сложной валидации так как просто
вычисляет цену как сумму actual_price компонентов + опциональная корректировка.
Файл: products/views/productkit_views.py
Исправлены 4 проблемы:
1. Расчёт цены первого товара - улучшена валидация в getProductPrice и calculateFinalPrice
2. Отображение actual_price в Select2 вместо обычной цены
3. Количество по умолчанию = 1 для новых форм компонентов
4. Auto-select текста при клике на поле количества для удобства редактирования
Изменённые файлы:
- products/forms.py: добавлен __init__ в KitItemForm для quantity.initial = 1
- products/templates/includes/select2-product-init.html: обновлена formatSelectResult
- products/templates/productkit_create.html: добавлен focus handler для auto-select
- products/templates/productkit_edit.html: добавлен focus handler для auto-select
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
ПРОБЛЕМА:
При создании комплекта с несколькими товарами сохранялся только первый товар.
ПРИЧИНЫ И РЕШЕНИЯ:
1. Неправильный префикс в JavaScript (productkit_create.html)
- Динамически добавляемые формы создавались с префиксом kititem_set-
- Django ожидает префикс kititem-
- ИСПРАВЛЕНО: изменены все name атрибуты с kititem_set- на kititem-
2. NULL constraint для quantity (models.py)
- Поле KitItem.quantity было NOT NULL
- Пустые формы пытались сохраняться с NULL
- ИСПРАВЛЕНО: добавлены null=True, blank=True к полю quantity
3. Неправильная валидация пустых форм (forms.py)
- Не было логики для обработки пустых компонентов
- ИСПРАВЛЕНО: пустые формы получают quantity=None, заполненные требуют quantity>0
4. Неправильный порядок сохранения (productkit_views.py)
- Формсет не имел правильного prefixсе
- ИСПРАВЛЕНО: явно установлен prefix='kititem' везде (get_context_data, form_valid)
✅ РЕЗУЛЬТАТ: Теперь можно создавать комплекты с неограниченным количеством товаров
🧪 ТЕСТИРОВАНО:
- Комплект 0 товаров ✓
- Комплект 1 товар ✓
- Комплект 3 товара ✓
🤖 Generated with Claude Code
Реализован современный двухэтапный подход к созданию комплектов:
**Шаг 1: Создание базовой информации** (productkit_create.html)
- Упрощённая форма только с базовой информацией
- Название, описание, категории, теги
- Фотографии с предпросмотром
- Настройки ценообразования
- Чистый современный UI с breadcrumbs
- Прогрессивное раскрытие (collapsible секции)
**Шаг 2: Добавление товаров** (productkit_edit.html)
- Автоматический redirect после создания
- Работа с товарами через существующий функционал
- Улучшенный заголовок с указанием шага
**Изменения в коде:**
- ProductKitCreateView: упрощён, убраны formsets
- ProductKitUpdateView: использует новый шаблон
- productkit_form.html → productkit_edit.html
- Новый шаблон productkit_create.html
**Преимущества:**
✅ Простая и надёжная логика сохранения
✅ Нет проблем с disabled полями в formsets
✅ Понятный UX с чёткими шагами
✅ Современный дизайн с иконками Bootstrap
✅ Предпросмотр фото перед загрузкой
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>