Migrate team: event registration to Next.js frontend
Goal
Replace the legacy Django template for team event registration with a Next.js view. While here, address three partner/team UX gaps that are tightly coupled to the same flow.
Legacy surfaces to migrate
- Team event registration page and its associated form logic
- Legacy AJAX endpoints for available events, event details, preference management, registration submit/confirm
1. Migration (core work)
- New Next.js view + route (pattern:
team/<id>/register, match existing team routes). - DRF endpoints replacing the legacy ajax URLs (preferences, available events, event details, registration submit).
- Preserve both flows the legacy form covers:
- Preference-based — active preference wave on the level → teams submit ordered choices → system processes later.
- Open-registration — direct registration into a single event.
- MUI components (Grid2, not deprecated Grid V1). Shared team state via
LumieosContextProvider. UseshowNotification()fromuseLumieosContext()for success/error — no inline Alerts or browser alerts. - Auth required; no public path.
2. Partner-configurable preference minimum
- New field on the event level: minimum number of preferences required — default = 1.
⚠️ Behavior change: the current hardcoded minimum of 2 drops to 1 by default. Partners who want to keep "must pick 2" must set it explicitly on each level. Call this out in the release notes so partners can act.
Acceptance criteria
- Team event registration page works in Next.js.
- Both preference-based and open-registration flows function correctly.
- The minimum preferences field is configurable per event level.
- Partners are notified of the behavior change in release notes.
Edited by Michael Adam