from django.contrib import admin from .models import ( AboutSection, AboutSectionItem, ContactSubmission, DownloadItem, FAQEntry, HomepageSection, HomepageSectionItem, ) class HomepageSectionItemInline(admin.TabularInline): model = HomepageSectionItem extra = 1 fields = ("icon", "title", "content", "image", "order") ordering = ("order",) @admin.register(HomepageSection) class HomepageSectionAdmin(admin.ModelAdmin): list_display = ("section_type", "badge", "title", "order", "is_active") list_filter = ("section_type", "is_active") list_editable = ("order", "is_active") inlines = [HomepageSectionItemInline] fieldsets = ( (None, {"fields": ("section_type", "badge", "title", "description")}), ("CTA Link (About Strip)", {"fields": ("link_text", "link_url"), "classes": ("collapse",)}), ("Settings", {"fields": ("order", "is_active")}), ) class AboutSectionItemInline(admin.StackedInline): model = AboutSectionItem extra = 1 fields = ("badge", "title", "content", "url", "image", "image_alt", "is_featured", "order") ordering = ("order",) @admin.register(AboutSection) class AboutSectionAdmin(admin.ModelAdmin): list_display = ("section_type", "badge", "title", "order", "is_active") list_filter = ("section_type", "is_active") list_editable = ("order", "is_active") inlines = [AboutSectionItemInline] fieldsets = ( (None, {"fields": ("section_type", "badge", "title", "subtitle")}), ("Content", {"fields": ("content_format", "content")}), ("Settings", {"fields": ("order", "is_active")}), ) @admin.register(ContactSubmission) class ContactSubmissionAdmin(admin.ModelAdmin): list_display = ("name", "title", "email", "submitted_at", "is_read") list_filter = ("is_read", "submitted_at") search_fields = ("name", "title", "description", "email") list_editable = ("is_read",) readonly_fields = ("name", "title", "description", "email", "submitted_at") fieldsets = ( (None, {"fields": ("name", "title", "email", "description")}), ("Meta", {"fields": ("submitted_at", "is_read")}), ) @admin.register(FAQEntry) class FAQEntryAdmin(admin.ModelAdmin): list_display = ("question", "order", "is_active", "created_at") list_filter = ("is_active",) search_fields = ("question", "answer") list_editable = ("order", "is_active") fieldsets = ( (None, {"fields": ("question",)}), ("Answer", {"fields": ("answer_format", "answer")}), ("Settings", {"fields": ("order", "is_active")}), ) @admin.register(DownloadItem) class DownloadItemAdmin(admin.ModelAdmin): list_display = ("name", "platform", "version", "is_active", "order") list_filter = ("platform", "is_active") search_fields = ("name", "description") list_editable = ("order", "is_active") fieldsets = ( (None, {"fields": ("name", "platform", "version", "download_url", "description")}), ("Settings", {"fields": ("order", "is_active")}), )