Fix registration form: remove stale tryout copy, add team preference #233

Closed
opened 2026-04-07 19:11:00 +00:00 by forgejo_admin · 1 comment
Contributor

Type

Feature

Lineage

Standalone — discovered during registration flow audit (2026-04-07). Parent reports receiving email with "March 24 tryout" details. Form itself also has stale copy.

Repo

forgejo_admin/westside-landing

User Story

As a parent registering my player
I want the form to reflect general program registration and let me indicate a team preference
So that I'm not confused by stale tryout-specific language and Coach Marcus knows where to slot my player

Context

The registration form was built for the March 2026 tryouts and never updated. The subtitle hardcodes "2026 Girls Tryouts - 15U 16U 17U", the registration type says "Tryout Registration ($30)", and the success page references "important dates" in a confirmation email that contains stale event details. Meanwhile, 7 teams exist in the database and /public/teams returns them — but the form has no team preference field. Player.team_preference exists on the model but the SvelteKit form never wired it up.

File Targets

Files to modify:

  • src/routes/(app)/register/+page.svelte — remove stale subtitle (line 226), change registration type label (line 457), update remote eval description (line 464), add team preference dropdown after Division, fix success page copy (lines 197-199, 521-523), include team_preference in POST payload

Files NOT to touch:

  • src/routes/(public)/tryouts/+page.svelte — data-driven and correct
  • src/lib/api.js — no changes needed

Acceptance Criteria

  • When I load /register, the subtitle does not reference "Girls Tryouts" or specific age groups
  • When I select a division, the team preference dropdown shows teams filtered by that division
  • When I switch divisions, the team preference options update reactively
  • When I submit without selecting a team, the form submits with team_preference as null
  • When I complete card payment, the success page says "login credentials" not "important dates"
  • When I use a promo code, the success confirmation also shows corrected copy

Test Expectations

  • Manual: load /register, verify no tryout language in header
  • Manual: select Girls division, verify only Queens teams appear in dropdown
  • Manual: select Boys division, verify only Kings teams appear
  • Manual: complete registration flow (promo code), verify success page copy
  • Run command: visual verification — no automated frontend tests for this form currently

Constraints

  • Fetch teams from /public/teams endpoint (already exists, returns team names + divisions)
  • Filter teams by selected division (reactive)
  • Team preference is optional — "No Preference" as default
  • No Tailwind — pure CSS vars + explicit styles
  • POST payload field name: team_preference (string, team name or null)

Checklist

  • PR opened
  • No unrelated changes
  • Tested on mobile viewport
  • westside-basketball — project
  • forgejo_admin/basketball-api#383 — API accepts team_preference (parallel ticket)
  • Spec: pal-e-platform/docs/superpowers/specs/2026-04-07-registration-flow-fix-design.md
### Type Feature ### Lineage Standalone — discovered during registration flow audit (2026-04-07). Parent reports receiving email with "March 24 tryout" details. Form itself also has stale copy. ### Repo `forgejo_admin/westside-landing` ### User Story As a parent registering my player I want the form to reflect general program registration and let me indicate a team preference So that I'm not confused by stale tryout-specific language and Coach Marcus knows where to slot my player ### Context The registration form was built for the March 2026 tryouts and never updated. The subtitle hardcodes "2026 Girls Tryouts - 15U 16U 17U", the registration type says "Tryout Registration ($30)", and the success page references "important dates" in a confirmation email that contains stale event details. Meanwhile, 7 teams exist in the database and `/public/teams` returns them — but the form has no team preference field. `Player.team_preference` exists on the model but the SvelteKit form never wired it up. ### File Targets Files to modify: - `src/routes/(app)/register/+page.svelte` — remove stale subtitle (line 226), change registration type label (line 457), update remote eval description (line 464), add team preference dropdown after Division, fix success page copy (lines 197-199, 521-523), include team_preference in POST payload Files NOT to touch: - `src/routes/(public)/tryouts/+page.svelte` — data-driven and correct - `src/lib/api.js` — no changes needed ### Acceptance Criteria - [ ] When I load /register, the subtitle does not reference "Girls Tryouts" or specific age groups - [ ] When I select a division, the team preference dropdown shows teams filtered by that division - [ ] When I switch divisions, the team preference options update reactively - [ ] When I submit without selecting a team, the form submits with team_preference as null - [ ] When I complete card payment, the success page says "login credentials" not "important dates" - [ ] When I use a promo code, the success confirmation also shows corrected copy ### Test Expectations - [ ] Manual: load /register, verify no tryout language in header - [ ] Manual: select Girls division, verify only Queens teams appear in dropdown - [ ] Manual: select Boys division, verify only Kings teams appear - [ ] Manual: complete registration flow (promo code), verify success page copy - Run command: visual verification — no automated frontend tests for this form currently ### Constraints - Fetch teams from `/public/teams` endpoint (already exists, returns team names + divisions) - Filter teams by selected division (reactive) - Team preference is optional — "No Preference" as default - No Tailwind — pure CSS vars + explicit styles - POST payload field name: `team_preference` (string, team name or null) ### Checklist - [ ] PR opened - [ ] No unrelated changes - [ ] Tested on mobile viewport ### Related - `westside-basketball` — project - `forgejo_admin/basketball-api#383` — API accepts team_preference (parallel ticket) - Spec: `pal-e-platform/docs/superpowers/specs/2026-04-07-registration-flow-fix-design.md`
Author
Contributor

APPROVED — file targets verified, API endpoint confirmed, no conflicts

Verification details:

  • File exists: src/routes/(app)/register/+page.svelte confirmed in repo
  • Line 226 (subtitle): 2026 Girls Tryouts • 15U 16U 17U — stale copy confirmed, matches ticket
  • Line 457 (tryout label): Tryout Registration ($30) — confirmed
  • Line 464 (remote eval description): For players who cannot attend an in-person tryout... — confirmed
  • Lines 197-199 (Stripe success copy): Line 199 says "important dates" — confirmed stale
  • Lines 521-523 (promo success copy): Line 523 says "important dates" — confirmed stale
  • API endpoint: GET /public/teams returns 7 teams with division field (boys/girls) — ready for dropdown filtering
  • No scope conflicts: No open issues or in-progress branches touch this file
APPROVED — file targets verified, API endpoint confirmed, no conflicts **Verification details:** - **File exists:** `src/routes/(app)/register/+page.svelte` confirmed in repo - **Line 226 (subtitle):** `2026 Girls Tryouts • 15U 16U 17U` — stale copy confirmed, matches ticket - **Line 457 (tryout label):** `Tryout Registration ($30)` — confirmed - **Line 464 (remote eval description):** `For players who cannot attend an in-person tryout...` — confirmed - **Lines 197-199 (Stripe success copy):** Line 199 says "important dates" — confirmed stale - **Lines 521-523 (promo success copy):** Line 523 says "important dates" — confirmed stale - **API endpoint:** `GET /public/teams` returns 7 teams with division field (boys/girls) — ready for dropdown filtering - **No scope conflicts:** No open issues or in-progress branches touch this file
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/westside-app#233
No description provided.