Добавлена отладочная страница для суперюзеров (Inventory Debug)

Реализация:
- Создан view debug_inventory_page (только для суперюзеров)
- URL: /inventory/debug/
- Компактный дизайн с минимальными отступами и маленьким шрифтом (10-11px)

Функционал:
1. Показывает полную картину инвентаризации на одной странице:
   - Заказы (Order) - номер, статус, покупатель, is_returned
   - Остатки (Stock) - доступно, зарезервировано, свободно
   - Партии (StockBatch) - количество, активность, дата поступления
   - Резервы (Reservation) - статус (reserved/converted_to_sale/released), заказ, даты
   - Продажи (Sale) - количество, цены, заказ
   - Списания (SaleBatchAllocation) - откуда списано, сколько

2. Фильтры:
   - По товару (dropdown с названием и SKU)
   - По номеру заказа (текстовое поле)
   - По складу (dropdown)
   - Кнопка 'Применить' и 'Сбросить'

3. UI:
   - Цветовая индикация статусов резервов
   - Бейджи для ключевых данных
   - Компактные таблицы Bootstrap
   - Неактивные партии выделены красным
   - Ограничение в 100 записей на таблицу для производительности

4. Навигация:
   - Ссылка 🔧 Debug в navbar (видна только суперюзерам)
   - Красный цвет для видимости

Юзкейс:
Суперюзер принимает товар на склад → оформляет заказ → меняет статусы →
переходит на /inventory/debug/ → видит полную картину всех изменений

Файлы:
- inventory/views/debug_views.py - новый view
- inventory/templates/inventory/debug_page.html - шаблон
- inventory/urls.py - добавлен роут
- templates/navbar.html - добавлена ссылка для суперюзеров
This commit is contained in:
2025-12-01 09:57:06 +03:00
parent 7b1922c186
commit 6bb15db5a0
4 changed files with 534 additions and 1 deletions

View File

@@ -51,8 +51,13 @@
<a class="nav-link {% if request.resolver_match.namespace == 'inventory' and 'showcase' in request.resolver_match.url_name %}active{% endif %}" href="{% url 'inventory:showcase-list' %}">Витрины</a>
</li>
<li class="nav-item">
<a class="nav-link {% if request.resolver_match.namespace == 'inventory' and 'showcase' not in request.resolver_match.url_name %}active{% endif %}" href="{% url 'inventory:inventory-home' %}">Склад</a>
<a class="nav-link {% if request.resolver_match.namespace == 'inventory' and 'showcase' not in request.resolver_match.url_name and 'debug' not in request.resolver_match.url_name %}active{% endif %}" href="{% url 'inventory:inventory-home' %}">Склад</a>
</li>
{% if user.is_superuser %}
<li class="nav-item">
<a class="nav-link {% if request.resolver_match.url_name == 'debug_page' %}active{% endif %}" href="{% url 'inventory:debug_page' %}" style="color: #dc3545; font-weight: bold;">🔧 Debug</a>
</li>
{% endif %}
{% endif %}
</ul>