from django.contrib import admin from .models import EventCategory, Venue, EventMaster, Event, EventPrincipalInteraction # Register your models here. class EventCategoryAdmin(admin.ModelAdmin): list_display = ("title", "description") search_fields = ("title", "description") list_filter = ("title",) class VenueAdmin(admin.ModelAdmin): list_display = ("id", "title", "address", "latitude", "longitude") search_fields = ("title", "address") list_filter = ("title",) class EventMasterAdmin(admin.ModelAdmin): list_display = ("title", "event_category", "description") search_fields = ("title", "description") list_filter = ("event_category", "title") class EventAdmin(admin.ModelAdmin): list_display = ( "id", "title", "category", "event_master", "start_date", "end_date", "venue", "status", "draft", "deleted", "active", ) list_filter = ("category", "status", "draft", "start_date", "end_date", "venue") search_fields = ( "title", "description", "venue__title", "category__name", ) # Assuming Venue and EventCategory have a title and name fields respectively date_hierarchy = "start_date" # Provides a quick date drill down functionality ordering = ("start_date", "from_time") # Orders events in the list view fieldsets = ( (None, {"fields": ("title", "description", "image", "status")}), ( "Date & Time", { "fields": ("start_date", "end_date", "from_time", "to_time"), }, ), ( "Venue Details", { "fields": ("venue", "venue_capacity"), }, ), ( "Category Details", { "fields": ("category",), }, ), ( "Entry", { "fields": ("entry_type", "entry_fee", "key_guest", "age_group"), }, ), ( "Miscellaneous", { "fields": ("video_url", "draft"), }, ), ) filter_horizontal = () # Use this if there are many-to-many fields raw_id_fields = ("venue", "category", "event_master") class EventPrincipalInteractionAdmin(admin.ModelAdmin): list_display = ("id", "principal", "event", "status") list_filter = ("status",) search_fields = ( "principal__name", "event__title", ) # Adjust these field lookups according to your models. admin.site.register(EventPrincipalInteraction, EventPrincipalInteractionAdmin) admin.site.register(Event, EventAdmin) admin.site.register(EventCategory, EventCategoryAdmin) admin.site.register(Venue, VenueAdmin) admin.site.register(EventMaster, EventMasterAdmin)