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')