- Добавлены view wallet_deposit и wallet_withdraw с защитой (login_required, is_staff, CSRF) - Новые маршруты: /customers/<pk>/wallet/deposit/ и /customers/<pk>/wallet/withdraw/ - UI на странице клиента: две симметричные формы для пополнения и списания баланса - Пополнение: произвольная сумма с обязательным описанием (подарки, компенсации) - Возврат/списание: с ограничением макс. суммы = текущий баланс, обязательное описание - Все операции логируются в WalletTransaction с типом 'adjustment' - Защита от операций с системным клиентом - Компактный симметричный дизайн форм с фиксированной высотой подсказок
18 lines
795 B
Python
18 lines
795 B
Python
from django.urls import path
|
|
from . import views
|
|
|
|
app_name = 'customers'
|
|
|
|
urlpatterns = [
|
|
path('', views.customer_list, name='customer-list'),
|
|
path('create/', views.customer_create, name='customer-create'),
|
|
path('<int:pk>/', views.customer_detail, name='customer-detail'),
|
|
path('<int:pk>/edit/', views.customer_update, name='customer-update'),
|
|
path('<int:pk>/delete/', views.customer_delete, name='customer-delete'),
|
|
path('<int:pk>/wallet/deposit/', views.wallet_deposit, name='wallet-deposit'),
|
|
path('<int:pk>/wallet/withdraw/', views.wallet_withdraw, name='wallet-withdraw'),
|
|
|
|
# AJAX API endpoints
|
|
path('api/search/', views.api_search_customers, name='api-search-customers'),
|
|
path('api/create/', views.api_create_customer, name='api-create-customer'),
|
|
] |