Loading
FEAT-760: Différenciation entre inscriptions validées, validées ayant besoin d’être mises à jour, et non complètes + FEAT-127: Email de confirmation d’inscription
📃 TICKET NOTION 📃
Summary
- First-validation latch:
Registrationnow persistsfirstValidatedAt(set once, cleared on unregister, backfilled by migration) as the single source of truth for validity, replacing recomputedeverythingIsOkchecks across the stack. - Three-way registration status: cockpit stats and participant lists now distinguish complete / stale / incomplete — new cockpit breakdown, warning-highlighted rows,
✔️ in the Inscrit·e column, "Première validation" CSV export column; volunteering stats count complete + stale. - Confirmation email: participants receive an email the first time their registration becomes valid (fire-and-forget on save), with an improved template; re-registering after unregistering re-sends it.
- Unified validity rules across stacks: validity predicates extracted and mirrored between API and both frontends (same
checkFirstSlot/checkForm/checkTicketingshape, moved toshared/utils), slot utilities homogenized, and slot validation made stricter (start must be strictly before end).
Edited by JulesLecuir