feat(discounts): добавлен CRUD интерфейс для скидок в настройках

- Добавлена вкладка "Скидки" в страницу настроек
- Созданы views для управления скидками и промокодами с проверкой прав:
  * owner/manager/superuser - полный CRUD
  * florist - только просмотр
  * courier - нет доступа
- Созданы шаблоны: список скидок, форма, подтверждение удаления
- Созданы шаблоны: список промокодов, форма, подтверждение удаления
- Добавлены фильтры по типу, области действия, активности
- Добавлена пагинация

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-11 01:18:26 +03:00
parent f50b47736d
commit b48e6c810d
10 changed files with 1169 additions and 2 deletions

View File

@@ -8,17 +8,23 @@
<!-- Навигация через вкладки -->
<ul class="nav nav-tabs mb-4" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link {% if request.resolver_match.url_name == 'settings' %}active{% endif %}"
<a class="nav-link {% if request.resolver_match.url_name == 'settings' %}active{% endif %}"
href="{% url 'system_settings:settings' %}">
Системные настройки
</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link {% if 'user_roles' in request.resolver_match.namespaces %}active{% endif %}"
<a class="nav-link {% if 'user_roles' in request.resolver_match.namespaces %}active{% endif %}"
href="{% url 'system_settings:user_roles:list' %}">
Роли пользователей
</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link {% if 'discounts' in request.resolver_match.namespaces %}active{% endif %}"
href="{% url 'system_settings:discounts:list' %}">
<i class="bi bi-tag"></i> Скидки
</a>
</li>
<!-- Здесь в будущем добавятся: Категории, Статусы заказов, Часовой пояс, Интеграции и т.д. -->
</ul>

View File

@@ -7,4 +7,5 @@ app_name = "system_settings"
urlpatterns = [
path("", SystemSettingsView.as_view(), name="settings"),
path("roles/", include('user_roles.urls', namespace='user_roles')),
path("discounts/", include('discounts.urls', namespace='discounts')),
]