You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
1.3 KiB
27 lines
1.3 KiB
from django.contrib import admin
|
|
from unfold.admin import ModelAdmin, TabularInline
|
|
from apps.donations.models import DonationCampaign, DonationTransaction
|
|
|
|
|
|
class DonationTransactionInline(TabularInline):
|
|
model = DonationTransaction
|
|
extra = 0
|
|
fields = ('transaction_reference', 'donor_name', 'amount', 'currency', 'payment_status', 'created_at')
|
|
readonly_fields = ('transaction_reference', 'donor_name', 'amount', 'currency', 'payment_status', 'created_at')
|
|
|
|
|
|
@admin.register(DonationCampaign)
|
|
class DonationCampaignAdmin(ModelAdmin):
|
|
list_display = ('title', 'category', 'priority', 'target_amount', 'raised_amount', 'currency', 'is_active', 'is_featured', 'deadline')
|
|
list_filter = ('category', 'priority', 'is_active', 'is_featured')
|
|
search_fields = ('title', 'description', 'organization_name', 'institution__name')
|
|
prepopulated_fields = {'slug': ('title',)}
|
|
inlines = [DonationTransactionInline]
|
|
|
|
|
|
@admin.register(DonationTransaction)
|
|
class DonationTransactionAdmin(ModelAdmin):
|
|
list_display = ('transaction_reference', 'campaign', 'donor_name', 'amount', 'currency', 'payment_status', 'created_at')
|
|
list_filter = ('payment_status', 'currency', 'created_at')
|
|
search_fields = ('transaction_reference', 'donor_name', 'donor_email', 'campaign__title')
|
|
readonly_fields = ('transaction_reference', 'created_at')
|