feat: require photo + division field, fix coach interstitial #45
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/basketball-api!45
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "44-phase-3c-form-improvements"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Phase 3c registration form improvements: adds a required division dropdown (boys/girls), makes the player photo required for new registrations (skipped for returning players who already uploaded one), fixes the coach Stripe interstitial guidance, adds tryout details to confirmation emails, and adds an is_paid safety net for the token flow.
Changes
src/basketball_api/models.py-- AddedDivisionenum (boys/girls) anddivisionnullable column on the Player modelsrc/basketball_api/routes/register.py-- Added required division dropdown with prefill support; made photo required (withhas_photoskip for returning players); addedis_paid=Truesafety net for token flow so paid parents via token never see "Payment Required"; added division to form handling, prefill, and player savesrc/basketball_api/routes/coach.py-- Updated Stripe interstitial: website row now says "skip / I don't have a website" instead of a URL; added product description row with AAU basketball coaching descriptionsrc/basketball_api/services/email.py-- Added tryout details block (Friday March 13, 5:30 PM registration, 6 PM tryouts, Kongo Basketball Gym address) to both plain text and HTML email templatesalembic/versions/e09c9e678004_add_division_column_to_players.py-- Migration adding the division enum type and nullable column to players tabletests/test_models.py-- Added Division enum value test, division field assertions for Player create/readtests/test_register.py-- Addedname="division"field presence check, invalid division validation test, division save testTest Plan
pytest tests/with a local Postgres (tests pass import checks; DB-dependent tests require running Postgres)/register?token=<valid_token>-- verify division dropdown appears, photo shows "already uploaded" if player has photo_url/register(walk-up) -- verify division dropdown is required, photo is required/coach/signupand submit -- verify Stripe interstitial shows "skip website" and product description rowsReview Checklist
ruff check src/ tests/)ruff format --check src/ tests/)Related
plan-2026-03-08-tryout-prep