from django.contrib import admin from .models import Cart, CartItem, Order, OrderItem, Payment class CartItemInline(admin.TabularInline): model = CartItem extra = 0 readonly_fields = ("box", "quantity", "subtotal") @admin.register(Cart) class CartAdmin(admin.ModelAdmin): list_display = ("id", "user", "created_at", "total_amount_display") inlines = [CartItemInline] def total_amount_display(self, obj): return obj.total_amount total_amount_display.short_description = "Total Amount" class OrderItemInline(admin.TabularInline): model = OrderItem extra = 0 readonly_fields = ("box", "quantity", "unit_price", "subtotal") @admin.register(Order) class OrderAdmin(admin.ModelAdmin): list_display = ("order_number", "user", "total_amount", "status", "created_at") list_filter = ("status", "created_at") search_fields = ("user__user__email",) inlines = [OrderItemInline] readonly_fields = ("order_number", "created_at") @admin.register(Payment) class PaymentAdmin(admin.ModelAdmin): list_display = ("order", "payment_method", "status", "transaction_id", "paid_at") list_filter = ("payment_method", "status") search_fields = ("order__order_number", "transaction_id")