Files
goodtimes/manage_events/admin.py

136 lines
3.8 KiB
Python

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)