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. Use showNotification() from useLumieosContext() 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