from django.contrib import admin from .models import Plan, PrincipalSubscription, Subscription # Update this with the correct import path for your models # Plan ModelAdmin class PlanAdmin(admin.ModelAdmin): list_display = ('id', 'title', 'days') # Include 'id' field here search_fields = ('title',) # Add search functionality by title # Register Plan with the admin site admin.site.register(Plan, PlanAdmin) # Subscription ModelAdmin class SubscriptionAdmin(admin.ModelAdmin): list_display = ('id', 'title', 'plan', 'amount') # Include 'id' field here list_select_related = ('plan',) # Optimizes queries for the plan field search_fields = ('title', 'plan__title') # Add search functionality by title and plan's title raw_id_fields = ('plan',) # Use a raw ID widget for the plan ForeignKey field # Register Subscription with the admin site admin.site.register(Subscription, SubscriptionAdmin) class PrincipalSubscriptionAdmin(admin.ModelAdmin): list_display = ('id', 'subscription', 'principal', 'is_paid', 'auto_renew', 'status', 'start_date', 'end_date') list_filter = ('is_paid', 'auto_renew', 'status', 'cancelled') # Enable filtering by these fields search_fields = ('subscription__title', 'principal__name', 'order_id') # Adjust 'principal__name' as necessary raw_id_fields = ('subscription', 'principal') # Use raw ID widget for these ForeignKey fields date_hierarchy = 'start_date' # Enables a date drill down by start_date admin.site.register(PrincipalSubscription, PrincipalSubscriptionAdmin)