Ilo/apps/payments/admin.py
2026-05-02 20:01:30 +03:30

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",)