from django.contrib import admin from .models import ( EventCategory, EventShare, EventView, Favorites, FreeUsageFeatureLimit, Venue, EventMaster, Event, EventPrincipalInteraction, AgeGroups ) # 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", # "tags", "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 = () # 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", ) class EventViewAdmin(admin.ModelAdmin): list_display = ("id", "event", "principal", "view_date", "location") search_fields = ("event__title", "principal__email", "location") list_filter = ("id", "view_date", "location", "event__title", "principal__email") ordering = ("-view_date",) readonly_fields = ("id",) class EventShareAdmin(admin.ModelAdmin): list_display = ("id", "event", "principal", "created_on") search_fields = ("event__title", "principal__username") list_filter = ("id", "event", "principal", "created_on") class FavoritesAdmin(admin.ModelAdmin): list_display = ("id", "principal", "event") search_fields = ("principal__username", "event__title") list_filter = ("principal", "event") ordering = ("id",) admin.site.register(Favorites, FavoritesAdmin) admin.site.register(EventShare, EventShareAdmin) admin.site.register(EventView, EventViewAdmin) 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) admin.site.register(AgeGroups) admin.site.register(FreeUsageFeatureLimit)