Files
goodtimes/manage_events/admin.py
2024-03-18 13:22:10 +05:30

98 lines
2.8 KiB
Python

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)