diff --git a/symposion/conference/admin.py b/symposion/conference/admin.py index c8e57441b7da5e0dbc0b5602a8bc0a40d0fd5b43..f714530361b2ac4050c9c8318d7b66818f4b64c0 100644 --- a/symposion/conference/admin.py +++ b/symposion/conference/admin.py @@ -3,7 +3,18 @@ from django.contrib import admin from symposion.conference.models import Conference, Section -admin.site.register(Conference, list_display=("title", "start_date", "end_date")) +class SectionInline(admin.TabularInline): + model = Section + prepopulated_fields = {"slug": ("name",)} + extra = 1 + + +class ConferenceAdmin(admin.ModelAdmin): + list_display = ("title", "start_date", "end_date") + inlines = [SectionInline, ] + + +admin.site.register(Conference, ConferenceAdmin) admin.site.register( Section, prepopulated_fields={"slug": ("name",)}, diff --git a/symposion/schedule/admin.py b/symposion/schedule/admin.py index 50f252c333057285b85c41fd95dc16d9ea415426..4a8c376ea1737d0367e1ed78daa55ce756a2309a 100644 --- a/symposion/schedule/admin.py +++ b/symposion/schedule/admin.py @@ -3,18 +3,43 @@ from django.contrib import admin from symposion.schedule.models import Schedule, Day, Room, SlotKind, Slot, SlotRoom, Presentation, Session, SessionRole -admin.site.register(Schedule) -admin.site.register(Day) -admin.site.register(Room) -admin.site.register(SlotKind) -admin.site.register( - Slot, - list_display=("day", "start", "end", "kind") -) -admin.site.register( - SlotRoom, - list_display=("slot", "room") -) +class DayInline(admin.StackedInline): + model = Day + extra = 2 + + +class SlotKindInline(admin.StackedInline): + model = SlotKind + + +class ScheduleAdmin(admin.ModelAdmin): + model = Schedule + inlines = [DayInline, SlotKindInline, ] + + +class SlotRoomInline(admin.TabularInline): + model = SlotRoom + extra = 1 + + +class SlotAdmin(admin.ModelAdmin): + list_filter = ("day", "kind") + list_display = ("day", "start", "end", "kind", "content") + inlines = [SlotRoomInline, ] + + +class RoomAdmin(admin.ModelAdmin): + inlines = [SlotRoomInline, ] + + +class PresentationAdmin(admin.ModelAdmin): + model = Presentation + list_filter = ("section", "cancelled", "slot") + + +admin.site.register(Schedule, ScheduleAdmin) +admin.site.register(Room, RoomAdmin) +admin.site.register(Slot, SlotAdmin) admin.site.register(Session) admin.site.register(SessionRole) -admin.site.register(Presentation) +admin.site.register(Presentation, PresentationAdmin)