Staff¶
The staff app manages convention staff and volunteers: departments,
leadership roles, HR, and time-clocking/shifts.
What it does¶
Departments & module ownership —
Departmentgroups staff; a department can own a Midsummer module (ModuleOwnership), which gates leadership-level permissions to that module’s surface.Permissive, role-based permissions — staff are assigned member types (e.g. staff, volunteer, deputy, leadership) and per-department titles. The permission system is permissive: a leadership member of a department gains elevated access to that department’s data (see Permissions).
Department titles —
DepartmentTitle(a catalog per department) +DepartmentTitleAssignmentgive staff/volunteers/deputies a display title (catalog or free-text). Titles flow into the roster view and Excel export.HR — personnel/HR management surfaced in
staff-hr.Shifts, slots, bids —
Shift,ShiftSlot,ShiftSlotBid,ShiftAssignment, plusOpenPosition/PositionApplicationand anOnboardingFlow/OnboardingRecordfor new-staff onboarding.Transfer & audit —
TransferRequestfor inter-department moves and anAuditLog(mirrored by the register module’s edit log) for accountability.Volunteer/Go-Fur time clocking — sheets and shifts.
Key models¶
Event
└─ Department
├─ ModuleOwnership # department owns a module → leadership perms
├─ DepartmentTitle ─ DepartmentTitleAssignment
├─ Shift ─ ShiftSlot ─ ShiftSlotBid / ShiftAssignment
├─ OpenPosition ─ PositionApplication
├─ OnboardingFlow ─ OnboardingRecord
└─ TransferRequest
└─ AuditLog
Where to look¶
Models:
staff/models.pyViews + roster building:
staff/views.pySerializers (title validation, roster export):
staff/serializers.pyFrontend:
ui/src/app/apps/staff/