Remove cash payment option from registration form #223

Closed
opened 2026-04-06 15:56:47 +00:00 by forgejo_admin · 2 comments

Type

Feature

Lineage

Standalone — discovered during registration flow review. Cash creates operational overhead and is no longer a desired payment path.

Repo

forgejo_admin/westside-landing

User Story

As a registering parent
I want to only see valid payment options (card or promo code)
So that I don't select a payment method that creates manual follow-up for coaches

Context

The registration form currently offers three payment methods: Pay Online (card), Pay Cash, and Use Promo Code. Cash registrations create pending records that require Coach Marcus to manually confirm payment in person, which adds operational overhead. The decision is to remove cash as an option going forward. Existing historical cash registrations in the database are unaffected — the admin "Mark Paid (Cash)" button on player profiles stays since it's used for any manual payment confirmation.

File Targets

Files the agent should modify:

  • src/routes/(app)/register/+page.svelte — remove cash radio button (L479-481), cash conditional note (L486-488), cash branch in getSubmitText() (L79)
  • src/app.css — remove .cash-note rule (L2106), remove .info-value-cash rule (L3584-3586)

Files the agent should NOT touch:

  • src/routes/(app)/players/[id]/+page.svelte — "Mark Paid (Cash)" admin button at L647 stays for historical records

Acceptance Criteria

  • When I open the registration form, then I see only "Pay Online" and "Use Promo Code" options
  • When I select "Pay Online", then the form submits to Stripe checkout as before
  • When I select "Use Promo Code", then the promo input appears as before
  • When I view a player profile as admin, then the "Mark Paid (Cash)" button still appears

Test Expectations

  • Manual: registration form shows only 2 payment options
  • Manual: card and promo flows work end-to-end
  • Run command: visual verification in browser

Constraints

  • Do not remove the "Mark Paid (Cash)" admin button — it's still needed
  • No changes to payment submission logic beyond removing the cash path
  • Companion backend ticket in basketball-api removes cash from API validation

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • westside — project this affects
  • forgejo_admin/basketball-api — companion API ticket to remove cash from validation
### Type Feature ### Lineage Standalone — discovered during registration flow review. Cash creates operational overhead and is no longer a desired payment path. ### Repo `forgejo_admin/westside-landing` ### User Story As a registering parent I want to only see valid payment options (card or promo code) So that I don't select a payment method that creates manual follow-up for coaches ### Context The registration form currently offers three payment methods: Pay Online (card), Pay Cash, and Use Promo Code. Cash registrations create pending records that require Coach Marcus to manually confirm payment in person, which adds operational overhead. The decision is to remove cash as an option going forward. Existing historical cash registrations in the database are unaffected — the admin "Mark Paid (Cash)" button on player profiles stays since it's used for any manual payment confirmation. ### File Targets Files the agent should modify: - `src/routes/(app)/register/+page.svelte` — remove cash radio button (L479-481), cash conditional note (L486-488), cash branch in `getSubmitText()` (L79) - `src/app.css` — remove `.cash-note` rule (L2106), remove `.info-value-cash` rule (L3584-3586) Files the agent should NOT touch: - `src/routes/(app)/players/[id]/+page.svelte` — "Mark Paid (Cash)" admin button at L647 stays for historical records ### Acceptance Criteria - [ ] When I open the registration form, then I see only "Pay Online" and "Use Promo Code" options - [ ] When I select "Pay Online", then the form submits to Stripe checkout as before - [ ] When I select "Use Promo Code", then the promo input appears as before - [ ] When I view a player profile as admin, then the "Mark Paid (Cash)" button still appears ### Test Expectations - [ ] Manual: registration form shows only 2 payment options - [ ] Manual: card and promo flows work end-to-end - Run command: visual verification in browser ### Constraints - Do not remove the "Mark Paid (Cash)" admin button — it's still needed - No changes to payment submission logic beyond removing the cash path - Companion backend ticket in basketball-api removes cash from API validation ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `westside` — project this affects - `forgejo_admin/basketball-api` — companion API ticket to remove cash from validation
Author
Owner

Scope Review: READY

Review note: review-859-2026-04-06

All file targets verified (line numbers accurate), template complete, traceability intact (story:WS-S17 confirmed on project page). Companion API ticket #860 identified and correctly scoped separately. Single-repo, 2-file change fits within 5-minute rule.

One non-blocking scope item: arch-westside-app architecture note does not exist in pal-e-docs (platform-wide gap).

## Scope Review: READY Review note: `review-859-2026-04-06` All file targets verified (line numbers accurate), template complete, traceability intact (story:WS-S17 confirmed on project page). Companion API ticket #860 identified and correctly scoped separately. Single-repo, 2-file change fits within 5-minute rule. One non-blocking scope item: arch-westside-app architecture note does not exist in pal-e-docs (platform-wide gap).
Author
Owner

Validation: FAIL

Tiers executed: Tier 3 (production)
Validation note: validation-223-2026-04-06
5 checks: 1 PASS, 2 FAIL, 1 BLOCKED

Failures:

  • Cash option still visible on /register — Playwright snapshot confirms "Pay Cash" radio button still present in production
  • Woodpecker pipeline #221 failed — Kaniko COPY . . race condition with Vite temp file (node_modules/.vite-temp/vite.config.js.timestamp-*.mjs). New image never built.
  • Pod running stale image — Running 282741ec..., HEAD of main is 6d02e023...

Root cause: CI pipeline failure prevented deployment. The code change is merged but not live.

Required action: Retry pipeline #221 or add node_modules/.vite-temp to .dockerignore and re-push.

## Validation: FAIL Tiers executed: Tier 3 (production) Validation note: `validation-223-2026-04-06` 5 checks: 1 PASS, 2 FAIL, 1 BLOCKED **Failures:** - **Cash option still visible on /register** — Playwright snapshot confirms "Pay Cash" radio button still present in production - **Woodpecker pipeline #221 failed** — Kaniko `COPY . .` race condition with Vite temp file (`node_modules/.vite-temp/vite.config.js.timestamp-*.mjs`). New image never built. - **Pod running stale image** — Running `282741ec...`, HEAD of main is `6d02e023...` **Root cause:** CI pipeline failure prevented deployment. The code change is merged but not live. **Required action:** Retry pipeline #221 or add `node_modules/.vite-temp` to `.dockerignore` and re-push.
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
forgejo_admin/westside-app#223
No description provided.