feat: Добавлены команды управления данными тенантов и исправлены фильтры по статусу товаров

Добавлено:
- Команда clear_tenant_data для полной очистки данных тенанта без удаления схемы
  * Очищает все таблицы через TRUNCATE CASCADE
  * Сбрасывает ID-последовательности
  * Сохраняет схему БД и запись Client
  * Поддержка флага --noinput для автоматизации

- Команда init_tenant_data для инициализации системных данных тенанта
  * Создаёт системного клиента (АНОНИМНЫЙ ПОКУПАТЕЛЬ для POS)
  * Создаёт 8 системных статусов заказов
  * Создаёт 5 системных способов оплаты
  * Поддержка флага --reset для пересоздания данных

Исправлено:
- Заменены устаревшие фильтры is_active на status='active' для Product и ProductKit
  * products/views/category_views.py: исправлены фильтры в build_category_tree и get_context_data
  * products/services/kit_pricing.py: исправлены фильтры при получении товаров из variant_group
  * products/models/kits.py: исправлен фильтр в get_available_products
  * Устранена ошибка FieldError при работе со списком категорий

Улучшено:
- Команда clear_tenant_data теперь предлагает пользователю инициализировать системные данные после очистки
- Добавлена детальная информация о процессе очистки и инициализации данных
This commit is contained in:
2025-12-12 04:58:26 +03:00
parent 2d253584ba
commit e54d7d04d7
7 changed files with 399 additions and 14 deletions

View File

@@ -105,7 +105,7 @@
</thead>
<tbody>
{% for order in page_obj %}
<tr>
<tr {% if order.status and order.status.is_negative_end and order.amount_paid > 0 %}class="table-warning"{% endif %}>
<td>
<a href="{% url 'orders:order-detail' order.order_number %}" class="text-decoration-none">
<strong>{{ order.order_number }}</strong>
@@ -157,8 +157,8 @@
<i class="bi bi-check-circle"></i> Оплачен
</span>
{% elif order.status and order.status.is_negative_end and order.amount_paid > 0 %}
<span class="badge bg-warning text-dark" title="Требуется возврат: {{ order.amount_paid }} руб.">
<i class="bi bi-exclamation-triangle"></i> Возврат
<span class="badge bg-warning text-dark" style="border: 3px solid #dc3545 !important; box-shadow: 0 0 0 1px #dc3545;" title="Требуется возврат: {{ order.amount_paid|floatformat:2 }} руб.">
<i class="bi bi-exclamation-triangle"></i> Возврат <strong style="color: #dc3545;">({{ order.amount_paid|floatformat:2 }} руб.)</strong>
</span>
{% elif order.amount_paid > 0 %}
<span class="badge bg-warning">