diff --git a/CHANGELOG.md b/CHANGELOG.md index f3f78f4..2b5fe0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2026-05-08 12:48 CEST — feat(go): M6.4 — Go-native /payments page + +- Extracted `AssemblePayments(ctx)` from the inlined JSON handler body, following the M6.2/M6.3 `AssembleAdults`/`AssembleJuniors` pattern. +- Added `PaymentsPageData` to `render.go`; wired `HTMLHandler.ServePayments` to call `AssemblePayments` and render the new template. +- Replaced the "Coming in M6.4" placeholder in `payments.tmpl` with the full grouped-by-person ledger: alphabetical `

` member blocks, each with a `txn-table` (Date / Amount / Purpose / Bank Message), newest-first rows, `"Unmatched / Unknown"` bucket. +- Appended ledger CSS classes to `app.css` (`.ledger-container`, `.member-block`, `.txn-table`, `.txn-{date,amount,purpose,message}`, `tr:hover`). +- Added `TestPaymentsPage` markup test. No filters, no JS — matches the Python page. + ## 2026-05-08 11:25 CEST — feat(go): M6.3 — Go-native /juniors page - Extracted `AssembleJuniors(ctx)` from the JSON handler so HTML and JSON share one view-model path (mirrors `AssembleAdults`). diff --git a/docs/plans/2026-05-03-2349-go-backend-rewrite-progress.md b/docs/plans/2026-05-03-2349-go-backend-rewrite-progress.md index ddfc2c5..92e220e 100644 --- a/docs/plans/2026-05-03-2349-go-backend-rewrite-progress.md +++ b/docs/plans/2026-05-03-2349-go-backend-rewrite-progress.md @@ -4,7 +4,7 @@ Companion to [2026-05-03-2349-go-backend-rewrite.md](2026-05-03-2349-go-backend- **Current milestone:** M6 — Go-native HTML frontend **Started:** 2026-05-04 -**Last updated:** 2026-05-08 (M6.2 merged) +**Last updated:** 2026-05-08 (M6.4 merged) ## How to use @@ -113,7 +113,7 @@ Goal: feature-equivalent UX on the Go side, designed cleanly. Not a Jinja port. - [x] **M6.1** Template skeleton: base layout, nav (Adults/Juniors/Payments/Sync/Flush), terminal-green-on-black theme; `embed.FS` for `templates/` + `static/` — `78e5059` - [x] **M6.2** `/adults` page: table, name filter input, month range filter, totals row, credits/debts/unmatched sections, Pay buttons that link to `/qr` — `c85748b` - [x] **M6.3** `/juniors` page: same structure + per-month J/A attendance breakdown + `"?"` sentinel rendering — `9564103` -- [ ] **M6.4** `/payments` page: grouped-by-person ledger view +- [x] **M6.4** `/payments` page: grouped-by-person ledger view — `689f1c0` - [ ] **M6.5** Modal JS module (`static/js/member-detail.js`): fetches `/api/adults` (or juniors), renders status/exceptions/transactions on row click; keyboard nav (Esc, ↑/↓) - [ ] **M6.6** `/qr`, `/sync-bank`, `/flush-cache`, `/version` pages - [ ] **M6.7** Wire `embed.FS` into handlers; verify single-binary deployment includes all assets