56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
from django.contrib import admin
|
|
|
|
from .models import Order, PromoCode, Referral
|
|
|
|
|
|
@admin.register(Order)
|
|
class OrderAdmin(admin.ModelAdmin):
|
|
list_display = (
|
|
"id",
|
|
"student",
|
|
"course",
|
|
"base_amount_toman",
|
|
"discount_amount_toman",
|
|
"amount_toman",
|
|
"instructor_share_toman",
|
|
"gateway",
|
|
"status",
|
|
"created_at",
|
|
"paid_at",
|
|
)
|
|
list_filter = ("status", "gateway", "course")
|
|
search_fields = ("student__phone_number", "course__slug", "authority", "ref_id", "promo_code__code")
|
|
raw_id_fields = ("student", "course", "promo_code", "referrer")
|
|
readonly_fields = (
|
|
"base_amount_toman",
|
|
"discount_amount_toman",
|
|
"amount_toman",
|
|
"ilo_fee_toman",
|
|
"instructor_share_toman",
|
|
"commission_percent_snapshot",
|
|
"gateway",
|
|
"authority",
|
|
"ref_id",
|
|
"created_at",
|
|
"paid_at",
|
|
"failed_at",
|
|
"last_error",
|
|
)
|
|
date_hierarchy = "created_at"
|
|
|
|
|
|
@admin.register(PromoCode)
|
|
class PromoCodeAdmin(admin.ModelAdmin):
|
|
list_display = ("code", "discount_percent", "discount_amount_toman", "course", "used_count", "max_uses", "is_active", "valid_until")
|
|
list_filter = ("is_active", "course")
|
|
search_fields = ("code",)
|
|
raw_id_fields = ("course",)
|
|
|
|
|
|
@admin.register(Referral)
|
|
class ReferralAdmin(admin.ModelAdmin):
|
|
list_display = ("referrer", "buyer", "course", "buyer_discount_toman", "referrer_credit_toman", "settled_at")
|
|
search_fields = ("referrer__phone_number", "buyer__phone_number", "course__slug")
|
|
raw_id_fields = ("referrer", "buyer", "order", "course")
|
|
readonly_fields = ("settled_at",)
|