Проблема: при создании тенанта автоматически создаются дефолтные
Склад и Витрина. Если пользователь удалит их, система может сломаться:
POS, создание заказов и резервирование перестанут работать.
Решение: реализована строгая валидация + мягкое удаление для витрин.
Изменения в inventory/views/warehouse.py:
- Добавлена валидация перед деактивацией склада:
* Блокировка деактивации последнего активного склада
* Проверка ненулевых остатков товаров
* Проверка активных резервов
* Предупреждение при деактивации дефолтного склада
Изменения в inventory/views/showcase.py:
- ShowcaseListView: по умолчанию показывает только активные витрины
- ShowcaseDeleteView: изменена логика с жесткого на мягкое удаление
- Добавлена валидация перед деактивацией витрины:
* Блокировка деактивации последней активной витрины склада
* Проверка активных резервов
* Проверка физических экземпляров комплектов (ShowcaseItem)
* Предупреждение при деактивации дефолтной витрины
Изменения в inventory/forms_showcase.py:
- Проверка уникальности названия витрины учитывает только активные
Изменения в inventory/admin.py:
- ShowcaseAdmin: добавлены методы delete_model() и delete_queryset()
для блокировки удаления последней витрины через админку
- WarehouseAdmin: добавлены методы delete_model() и delete_queryset()
для блокировки удаления последнего склада через админку
Преимущества:
✅ Система не сломается - всегда есть хотя бы один активный склад/витрина
✅ Данные в безопасности - мягкое удаление для обеих сущностей
✅ Понятные сообщения об ошибках для пользователя
✅ Защита работает как в UI, так и в Django Admin
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>