adding
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
from django.contrib import admin
|
||||
from django.shortcuts import redirect
|
||||
|
||||
from .models import BazaarPurchase, BazaarSettings, FeatureActivation, FeaturePlan, FeaturePlanTier, GemPack, GemTransaction
|
||||
|
||||
|
||||
@admin.register(BazaarSettings)
|
||||
class BazaarSettingsAdmin(admin.ModelAdmin):
|
||||
"""تکردیفی — لیست را رد میکنیم و مستقیم فرم ویرایش همان یک ردیف را نشان میدهیم."""
|
||||
|
||||
list_display = ("package_name", "updated_at")
|
||||
|
||||
def has_add_permission(self, request):
|
||||
return not BazaarSettings.objects.exists()
|
||||
|
||||
def changelist_view(self, request, extra_context=None):
|
||||
obj = BazaarSettings.get_solo()
|
||||
return redirect("admin:billing_bazaarsettings_change", obj.pk)
|
||||
|
||||
|
||||
class FeaturePlanTierInline(admin.TabularInline):
|
||||
model = FeaturePlanTier
|
||||
extra = 1
|
||||
|
||||
|
||||
@admin.register(FeaturePlan)
|
||||
class FeaturePlanAdmin(admin.ModelAdmin):
|
||||
list_display = ("name", "key", "is_purchasable")
|
||||
search_fields = ("name", "key")
|
||||
inlines = [FeaturePlanTierInline]
|
||||
|
||||
|
||||
@admin.register(GemPack)
|
||||
class GemPackAdmin(admin.ModelAdmin):
|
||||
list_display = ("display_name", "bazaar_sku", "gem_amount", "is_active", "sort_order")
|
||||
list_editable = ("is_active", "sort_order")
|
||||
search_fields = ("display_name", "bazaar_sku")
|
||||
|
||||
|
||||
@admin.register(FeatureActivation)
|
||||
class FeatureActivationAdmin(admin.ModelAdmin):
|
||||
list_display = ("user", "feature", "expires_at", "updated_at")
|
||||
list_filter = ("feature",)
|
||||
search_fields = ("user__phone",)
|
||||
autocomplete_fields = ["user"]
|
||||
|
||||
|
||||
@admin.register(GemTransaction)
|
||||
class GemTransactionAdmin(admin.ModelAdmin):
|
||||
list_display = ("user", "amount", "reason", "created_at")
|
||||
list_filter = ("reason",)
|
||||
search_fields = ("user__phone", "note")
|
||||
readonly_fields = ("user", "amount", "reason", "note", "created_at")
|
||||
|
||||
def has_add_permission(self, request):
|
||||
# تراکنش جم فقط از سرویسهای داخلی ساخته میشود، نه دستی از ادمین —
|
||||
# برای اصلاح دستی از GemTransaction.Reason.ADMIN_ADJUSTMENT در شل/سرویس استفاده کن.
|
||||
return False
|
||||
|
||||
|
||||
@admin.register(BazaarPurchase)
|
||||
class BazaarPurchaseAdmin(admin.ModelAdmin):
|
||||
list_display = ("user", "gem_pack", "status", "gems_granted", "created_at", "verified_at")
|
||||
list_filter = ("status",)
|
||||
search_fields = ("user__phone", "purchase_token")
|
||||
readonly_fields = ("purchase_token", "created_at", "verified_at")
|
||||
Reference in New Issue
Block a user