Improve public roster page accuracy and player visibility #232
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/westside-app#232
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Type
Feature
Lineage
Standalone — discovered during email blast prep (2026-04-07). 17 of 52 players had
is_public=Falsedespite being on teams with signed contracts. Public roster doesn't reflect the real team accurately.Repo
forgejo_admin/westside-landingUser Story
As a parent visiting the teams page
I want to see my player listed on the roster
So that I know they're officially on the team and feel connected to the program
Context
The public
/teamspage only shows players withis_public=True. This flag is manually managed and was out of sync — 17 active team members weren't visible. We bulk-fixed visibility for the current blast, but the underlying issue is thatis_publicshould be derived from team assignment + contract status, not manually toggled.Current state: roster cards show name, jersey number, position, height, school. Missing: player photos (placeholder divs), graduating class. The page looks incomplete when players haven't filled out their profiles.
File Targets
Files to modify:
src/routes/(public)/teams/+page.svelte— roster card layout, empty state handlingis_public=Truewhen player is assigned to a team (backend change in basketball-api)Files NOT to touch:
src/routes/(public)/schedule/+page.svelte— working correctlysrc/lib/keycloak.js— auth is a separate ticket (pal-e-services #55)Acceptance Criteria
contract_status=signedare automaticallyis_public=Truecontract_status=declined) are never shown on public rosterTest Expectations
npm run devand check/teamsConstraints
/public/teamsfilters byis_public— any automation should happen at the data layerChecklist
Related
westside— project this affectsforgejo_admin/pal-e-services #55— Keycloak SMTP fixforgejo_admin/basketball-api #379— declined status enum