Source code for django_program.sponsors.admin
"""Django admin configuration for the sponsors app."""
from django.contrib import admin
from django_program.sponsors.models import Sponsor, SponsorBenefit, SponsorLevel, SponsorOverride
[docs]
class SponsorBenefitInline(admin.TabularInline):
"""Inline editor for sponsor benefits within the sponsor admin."""
model = SponsorBenefit
extra = 1
fields = ("name", "description", "is_complete", "notes")
[docs]
@admin.register(SponsorLevel)
class SponsorLevelAdmin(admin.ModelAdmin):
"""Admin interface for managing sponsor levels."""
list_display = ("name", "conference", "cost", "comp_ticket_count", "order")
list_filter = ("conference",)
search_fields = ("name", "slug")
[docs]
@admin.register(Sponsor)
class SponsorAdmin(admin.ModelAdmin):
"""Admin interface for managing sponsors with inline benefits."""
list_display = ("name", "conference", "level", "is_active")
list_filter = ("conference", "level", "is_active")
search_fields = ("name", "slug", "contact_name", "contact_email")
inlines = (SponsorBenefitInline,)
[docs]
@admin.register(SponsorOverride)
class SponsorOverrideAdmin(admin.ModelAdmin):
"""Admin interface for managing sponsor overrides."""
list_display = ("sponsor", "conference", "override_name", "override_is_active", "updated_at")
list_filter = ("conference",)
search_fields = ("sponsor__name", "override_name", "note")
raw_id_fields = ("sponsor", "override_level", "created_by")
readonly_fields = ("created_at", "updated_at")