Рефакторинг моделей заказов и добавление методов оплаты
This commit is contained in:
@@ -50,6 +50,7 @@ urlpatterns = [
|
||||
path('api/categories/create/', api_views.create_category_api, name='api-category-create'),
|
||||
path('api/categories/<int:pk>/rename/', api_views.rename_category_api, name='api-category-rename'),
|
||||
path('api/products/<int:pk>/update-price/', api_views.update_product_price_api, name='api-update-product-price'),
|
||||
path('api/payment-methods/', api_views.get_payment_methods, name='api-payment-methods'),
|
||||
|
||||
# Photo processing status API (for AJAX polling)
|
||||
path('api/photos/status/<str:task_id>/', photo_status_api.photo_processing_status, name='api-photo-status'),
|
||||
|
||||
@@ -1217,3 +1217,39 @@ def update_product_price_api(request, pk):
|
||||
'success': False,
|
||||
'error': f'Ошибка при обновлении цены: {str(e)}'
|
||||
}, status=500)
|
||||
|
||||
|
||||
def get_payment_methods(request):
|
||||
"""
|
||||
API endpoint для получения списка активных способов оплаты.
|
||||
Используется для динамической загрузки payment methods в JavaScript.
|
||||
|
||||
Возвращает JSON:
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Наличные курьеру",
|
||||
"code": "cash_to_courier",
|
||||
"description": "Оплата наличными при получении заказа"
|
||||
},
|
||||
...
|
||||
]
|
||||
"""
|
||||
try:
|
||||
from orders.models import PaymentMethod
|
||||
|
||||
# Получаем все активные способы оплаты, упорядоченные по полю order и названию
|
||||
payment_methods = PaymentMethod.objects.filter(
|
||||
is_active=True
|
||||
).order_by('order', 'name').values('id', 'name', 'code', 'description')
|
||||
|
||||
# Преобразуем QuerySet в список
|
||||
methods_list = list(payment_methods)
|
||||
|
||||
return JsonResponse(methods_list, safe=False)
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f'Ошибка при загрузке способов оплаты: {str(e)}')
|
||||
return JsonResponse({
|
||||
'error': f'Ошибка при загрузке способов оплаты: {str(e)}'
|
||||
}, status=500)
|
||||
|
||||
Reference in New Issue
Block a user