feat: Добавлена функциональность управления заказами и улучшен поиск товаров
Заказы: - Добавлены миграции для исторических записей с полями оплаты и получателя - Расширен admin для заказов с инлайнами товаров/комплектов - Реализованы представления списка, создания, редактирования и удаления заказов - Добавлен шаблон подтверждения удаления заказа - Настроены URL-маршруты для работы с заказами Клиенты: - Добавлена миграция с новыми полями адресов и подтверждений - Обновлена модель клиентов с дополнительными полями - Улучшен admin для работы с клиентами Товары: - Значительно улучшен API поиска товаров с поддержкой фильтрации - Добавлен Select2 виджет для динамического поиска товаров - Создан статический JS файл для интеграции Select2 - Оптимизирована обработка запросов и ответов API Прочее: - Добавлены новые настройки в settings.py - Обновлена навигация в navbar.html - Обновлены URL-маршруты проекта 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,16 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from django.contrib import admin
|
||||
from .models import Order, OrderItem
|
||||
from .models import Order, OrderItem, Payment
|
||||
|
||||
|
||||
class PaymentInline(admin.TabularInline):
|
||||
"""
|
||||
Inline для управления платежами по заказу.
|
||||
"""
|
||||
model = Payment
|
||||
extra = 1
|
||||
fields = ['amount', 'payment_method', 'payment_date', 'created_by', 'notes']
|
||||
readonly_fields = ['payment_date']
|
||||
|
||||
|
||||
class OrderItemInline(admin.TabularInline):
|
||||
@@ -27,18 +37,19 @@ class OrderAdmin(admin.ModelAdmin):
|
||||
list_display = [
|
||||
'order_number',
|
||||
'customer',
|
||||
'delivery_type',
|
||||
'is_delivery',
|
||||
'delivery_date',
|
||||
'status',
|
||||
'total_amount',
|
||||
'is_paid',
|
||||
'payment_status',
|
||||
'amount_paid',
|
||||
'created_at',
|
||||
]
|
||||
|
||||
list_filter = [
|
||||
'status',
|
||||
'delivery_type',
|
||||
'is_paid',
|
||||
'is_delivery',
|
||||
'payment_status',
|
||||
'delivery_date',
|
||||
'created_at',
|
||||
]
|
||||
@@ -58,6 +69,8 @@ class OrderAdmin(admin.ModelAdmin):
|
||||
'updated_at',
|
||||
'delivery_info',
|
||||
'delivery_time_window',
|
||||
'amount_due',
|
||||
'payment_status',
|
||||
]
|
||||
|
||||
fieldsets = (
|
||||
@@ -66,7 +79,8 @@ class OrderAdmin(admin.ModelAdmin):
|
||||
}),
|
||||
('Доставка', {
|
||||
'fields': (
|
||||
'delivery_type',
|
||||
'is_delivery',
|
||||
'customer_is_recipient',
|
||||
'delivery_address',
|
||||
'pickup_shop',
|
||||
'delivery_date',
|
||||
@@ -78,19 +92,26 @@ class OrderAdmin(admin.ModelAdmin):
|
||||
)
|
||||
}),
|
||||
('Оплата', {
|
||||
'fields': ('payment_method', 'is_paid', 'total_amount')
|
||||
'fields': (
|
||||
'payment_method',
|
||||
'total_amount',
|
||||
'discount_amount',
|
||||
'amount_paid',
|
||||
'amount_due',
|
||||
'payment_status',
|
||||
)
|
||||
}),
|
||||
('Дополнительно', {
|
||||
'fields': ('is_anonymous', 'special_instructions'),
|
||||
'classes': ('collapse',)
|
||||
}),
|
||||
('Системная информация', {
|
||||
'fields': ('created_at', 'updated_at'),
|
||||
'fields': ('created_at', 'updated_at', 'modified_by'),
|
||||
'classes': ('collapse',)
|
||||
}),
|
||||
)
|
||||
|
||||
inlines = [OrderItemInline]
|
||||
inlines = [OrderItemInline, PaymentInline]
|
||||
|
||||
actions = [
|
||||
'mark_as_confirmed',
|
||||
@@ -131,6 +152,41 @@ class OrderAdmin(admin.ModelAdmin):
|
||||
mark_as_paid.short_description = 'Отметить как оплаченные'
|
||||
|
||||
|
||||
@admin.register(Payment)
|
||||
class PaymentAdmin(admin.ModelAdmin):
|
||||
"""
|
||||
Админ-панель для управления платежами.
|
||||
"""
|
||||
list_display = [
|
||||
'order',
|
||||
'amount',
|
||||
'payment_method',
|
||||
'payment_date',
|
||||
'created_by',
|
||||
]
|
||||
|
||||
list_filter = [
|
||||
'payment_method',
|
||||
'payment_date',
|
||||
]
|
||||
|
||||
search_fields = [
|
||||
'order__order_number',
|
||||
'notes',
|
||||
]
|
||||
|
||||
readonly_fields = ['payment_date']
|
||||
|
||||
fieldsets = (
|
||||
('Информация о платеже', {
|
||||
'fields': ('order', 'amount', 'payment_method', 'payment_date')
|
||||
}),
|
||||
('Дополнительно', {
|
||||
'fields': ('created_by', 'notes')
|
||||
}),
|
||||
)
|
||||
|
||||
|
||||
@admin.register(OrderItem)
|
||||
class OrderItemAdmin(admin.ModelAdmin):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user