Files @ e726ff21a8ff
Branch filter:

Location: symposion_app/vendor/symposion/schedule/admin.py

James Polley
Create regidesk app

Shows summary of all attendees with a paid ticket, including
boarding_pass status.

Currently, regidesk allows staff with the requisite permission the
ability to view the checkin status of attendees, and email the user
their boarding pass email.

Included is a view for the user to retrieve their own QR code (in case
they got the plain-text version of the email, they can use this to
download an image to their phone for faster checkin)
from django.contrib import admin

from symposion.schedule.models import Schedule, Day, Room, SlotKind, Slot, SlotRoom, Presentation, Session, SessionRole, Track


class DayInline(admin.StackedInline):
    model = Day
    extra = 2


class SlotKindInline(admin.StackedInline):
    model = SlotKind


class ScheduleAdmin(admin.ModelAdmin):
    model = Schedule
    inlines = [DayInline, SlotKindInline, ]
    list_display = ["section","published","hidden"]
    list_editable = ["published","hidden"]
    list_filter = ["published","hidden"]


class SlotRoomInline(admin.TabularInline):
    model = SlotRoom
    extra = 1


class SlotAdmin(admin.ModelAdmin):
    list_filter = ("day", "kind","exclusive")
    list_display = ("day", "start", "end", "kind", "room_names",
                    "content_override","exclusive")
    list_editable = ("exclusive",)
    inlines = [SlotRoomInline]

    def room_names(self, slot):
        return ", ".join(room.name for room in slot.rooms.all())


class RoomAdmin(admin.ModelAdmin):
    list_display = ["name", "order", "schedule"]
    list_filter = ["schedule"]
    inlines = [SlotRoomInline]


class PresentationAdmin(admin.ModelAdmin):
    model = Presentation
    list_filter = ("section", "cancelled", "slot")

class TrackAdmin(admin.ModelAdmin):
    model = Track
    list_filter=("room","day")
    list_display=("name","room","day")
    list_editable=("room","day")


admin.site.register(Day)
admin.site.register(
    SlotKind,
    list_display=["label", "schedule"],
)
admin.site.register(
    SlotRoom,
    list_display=["slot", "room"]
)
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, PresentationAdmin)
admin.site.register(Track, TrackAdmin)