Add Admin screens for Attendees

Allow attendees and attendee profiles to be managed via
the admin site so organisers can fill out details on attendees' behalf,
eg. for invited speakers.
This commit is contained in:
Joel Addison 2026-01-17 09:10:48 +00:00
parent ca503ad9ca
commit 12abf7d642
2 changed files with 30 additions and 0 deletions

View file

@ -1,5 +1,23 @@
from django.contrib import admin from django.contrib import admin
from .models import PastEvent from .models import PastEvent
from .models import AttendeeProfile
admin.site.register(PastEvent) admin.site.register(PastEvent)
@admin.register(AttendeeProfile)
class AttendeeProfileAdmin(admin.ModelAdmin):
model = AttendeeProfile
list_display = ("attendee", "attendee_name", "company", "country", "state", "attendee_completed_registration", "attendee_ticket_type")
list_filter = ("attendee__completed_registration", "company", "country")
def attendee_completed_registration(self, obj):
return obj.attendee.completed_registration
attendee_completed_registration.admin_order_field = "attendee__completed_registration"
attendee_completed_registration.short_description = "Completed Registration?"
def attendee_ticket_type(self, obj):
return obj.attendee.ticket_type
attendee_ticket_type.short_description = "Ticket Type"

View file

@ -6,6 +6,7 @@ import nested_admin
from registrasion.models import conditions from registrasion.models import conditions
from registrasion.models import inventory from registrasion.models import inventory
from registrasion.models import people
class EffectsDisplayMixin(object): class EffectsDisplayMixin(object):
@ -238,3 +239,14 @@ class TimeOrStockLimitFlagAdmin(admin.ModelAdmin, EffectsDisplayMixin):
"effects", "effects",
) )
ordering = ("start_time", "end_time", "limit") ordering = ("start_time", "end_time", "limit")
# People admin
@admin.register(people.Attendee)
class AttendeeAdmin(admin.ModelAdmin):
model = people.Attendee
list_display = ("user", "completed_registration", "access_code")
list_filter = ("completed_registration", )
readonly_fields = ("access_code", )