Files
goodtimes/manage_wallets/admin.py
2024-04-24 13:45:16 +05:30

119 lines
3.4 KiB
Python

from django.contrib import admin
from manage_wallets import models
# Register your models here.
class WalletAdmin(admin.ModelAdmin):
list_display = (
"id",
"principal",
"coins",
"balance",
"deposit",
"withdrawal_balance",
"active",
"deleted",
"created_on",
"modified_on",
"created_by",
"modified_by",
)
list_filter = ("principal",) # You can filter the list by other fields if needed
search_fields = (
"principal__username",
) # Example search field (replace with the relevant field)
admin.site.register(models.Wallet, WalletAdmin)
# class TransactionAdmin(admin.ModelAdmin):
# list_display = ('principal', 'principal_type', 'transaction_type', 'transaction_status', 'amount', 'active', 'deleted', 'created_on', 'modified_on', 'created_by', 'modified_by')
# list_filter = ('principal', 'transaction_type', 'transaction_status')
# search_fields = ('principal__username',)
# admin.site.register(models.Transaction, TransactionAdmin)
@admin.register(models.Transaction)
class TransactionAdmin(admin.ModelAdmin):
list_display = (
"id",
"principal",
"transaction_type",
"transaction_status",
"amount",
"comment",
"order_id",
"product_id",
"reference_id",
"payment_method",
"principal_subscription",
"active",
"deleted",
"created_on",
"modified_on",
"created_by",
"modified_by",
)
list_filter = ("transaction_type", "transaction_status")
search_fields = ["order_id"]
@admin.register(models.StripeConnectAccount)
class StripeConnectAccountAdmin(admin.ModelAdmin):
list_display = (
"id",
"principal",
"stripe_connect_id",
"charges_enabled",
"transfers_enabled",
"details_submitted",
)
search_fields = ("principal__name", "stripe_connect_id")
class WithdrawalRequestAdmin(admin.ModelAdmin):
list_display = ("id", "principal", "coins", "token", "amount", "status", "ref_id")
list_filter = ("status", "principal")
search_fields = (
"ref_id",
"token",
"principal__user__username",
) # Adjust if 'principal' has a different relation to User
readonly_fields = ("ref_image", "reply", "notes")
fieldsets = (
(None, {"fields": ("principal", "coins", "token", "amount", "status")}),
(
"Reference Information",
{
"fields": ("ref_image", "ref_id", "notes", "reply"),
"classes": ("collapse",),
},
),
)
# def has_delete_permission(self, request, obj=None):
# # Disable delete if the status is not 'denied' or 'dispute'
# if obj is not None:
# if obj.status in ["denied", "dispute"]:
# return True
# return False
# return True
def has_add_permission(self, request, obj=None):
# You can also control if adding is allowed
return True
def has_change_permission(self, request, obj=None):
# Control the ability to change existing records
if obj is not None:
if obj.status in ["submitted", "review"]:
return True
return False
return True
admin.site.register(models.WithdrawalRequest, WithdrawalRequestAdmin)