File size: 1,311 Bytes
4b2adab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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")