Files
@ 7fac10241ec7
Branch filter:
Location: symposion_app/vendor/symposion/schedule/admin.py - annotation
7fac10241ec7
2.2 KiB
text/x-python
Improve attendee reports
Display attendee profile data in normal table without DataTables so
sorting is not applied, causing data to be confusing to read.
Include item quantity in attendee data report for accurate schwag packing.
Display attendee profile data in normal table without DataTables so
sorting is not applied, causing data to be confusing to read.
Include item quantity in attendee data report for accurate schwag packing.
39d0faac7c40 39d0faac7c40 765e80765c3e 39d0faac7c40 39d0faac7c40 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 1eb28f2c80a4 1eb28f2c80a4 1eb28f2c80a4 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f f99765ca0b03 f99765ca0b03 f99765ca0b03 f99765ca0b03 f99765ca0b03 f99765ca0b03 32e8c27df99f eb1193b26516 eb1193b26516 eb1193b26516 eb1193b26516 8a95b0861c5c f99765ca0b03 32e8c27df99f 193ffc76d5a2 2cce659c28b4 193ffc76d5a2 6dd80f9ddb6f 32e8c27df99f 8a95b0861c5c 8a95b0861c5c 8a95b0861c5c 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f 32e8c27df99f a880bc27fbf6 a880bc27fbf6 a880bc27fbf6 a880bc27fbf6 a880bc27fbf6 a880bc27fbf6 98e0abf30ca3 98e0abf30ca3 98e0abf30ca3 8da6d1809805 18fc3bd4a791 32e8c27df99f 39d0faac7c40 7cff2d8b1dcf 7cff2d8b1dcf 8a95b0861c5c 479579f35072 479579f35072 479579f35072 8a95b0861c5c 479579f35072 32e8c27df99f 32e8c27df99f 32e8c27df99f 98e0abf30ca3 a41fb8bd3542 32e8c27df99f a880bc27fbf6 | 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
def update_slot_names(modeladmin, request, queryset):
for slot in queryset:
slot.save()
update_slot_names.short_description = "Update slot names"
class SlotAdmin(admin.ModelAdmin):
list_filter = ("day", "kind", "exclusive", "slotroom__room")
list_display = ("day", "start", "end", "kind", "room_names",
"content_override", "exclusive")
list_editable = ("exclusive", "kind", "start", "end")
inlines = [SlotRoomInline]
actions = [update_slot_names]
def room_names(self, slot):
return ", ".join(room.name for room in slot.rooms)
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")
class SessionAdmin(admin.ModelAdmin):
model = Session,
filter_vertical=["slots"]
list_display=("day","start","end","room_names")
list_filter=("slots__slotroom__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, SessionAdmin)
admin.site.register(SessionRole)
admin.site.register(Presentation, PresentationAdmin)
admin.site.register(Track, TrackAdmin)
|