Promote dev → uat: GRO-2158 route planner page #61

Merged
Flea Flicker merged 1 commits from flea/dev-to-uat-gro-2158 into uat 2026-06-09 02:00:56 +00:00
Member

Promote dev → uat: GRO-2158 Route Planner page

Promotes the route planner feature to uat. Scoped to GRO-2158 only — cherry-picked the squashed dev commit (c58e4e4) onto uat so this promotion does not entangle with the in-flight GRO-2236 promotion (#58).

Contents: /admin/routes route planner — react-leaflet (code-split) map with numbered pins + polyline, stop-list panel, travel/distance summary, status badge, Optimize button (POST /api/routes/optimize), groomer-role auto-filter.

UAT_PLAYBOOK.md: new §5.28 — Route Planner Page (nav reachability, code-split verification, pins+polyline, stop cards, summary+badge, optimize, groomer auto-filter, empty state).

Feature PR (already merged to dev): #60.
Source issue: GRO-2158.

🤖 Generated with Claude Code

## Promote dev → uat: GRO-2158 Route Planner page Promotes the route planner feature to `uat`. Scoped to **GRO-2158 only** — cherry-picked the squashed `dev` commit (`c58e4e4`) onto `uat` so this promotion does not entangle with the in-flight GRO-2236 promotion ([#58](https://git.farh.net/groombook/web/pulls/58)). **Contents:** `/admin/routes` route planner — react-leaflet (code-split) map with numbered pins + polyline, stop-list panel, travel/distance summary, status badge, Optimize button (`POST /api/routes/optimize`), groomer-role auto-filter. **UAT_PLAYBOOK.md:** new **§5.28 — Route Planner Page** (nav reachability, code-split verification, pins+polyline, stop cards, summary+badge, optimize, groomer auto-filter, empty state). Feature PR (already merged to dev): [#60](https://git.farh.net/groombook/web/pulls/60). Source issue: [GRO-2158](/GRO/issues/GRO-2158). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Flea Flicker added 1 commit 2026-06-09 01:52:02 +00:00
feat(GRO-2158): route planner page at /admin/routes (#60)
CI / Test (pull_request) Successful in 21s
CI / Lint & Typecheck (pull_request) Successful in 27s
CI / Build & Push Docker Image (pull_request) Successful in 39s
9eeced6a30
Lint Roller approved these changes 2026-06-09 01:56:05 +00:00
Lint Roller left a comment
Member

QA Review — APPROVED

Reviewed for GRO-2272 (dev → uat promotion, GRO-2158 Route Planner)

CI

  • Lint & Typecheck
  • Test (176 passing)
  • Docker Build

Spec checklist

Item Result
/admin/routes routed in AdminLayout, nav link added
Date picker + groomer selector rendered
Groomer selector hidden for groomer role (resolved via GET /api/staff/me)
react-leaflet loaded via React.lazy → separate code-split chunk
OSM tile attribution present
Numbered divIcon pins per stop + connecting Polyline
Stop cards: time, client name, address, travel-from-previous, conflict flag
Summary: total travel time (formatted), distance km, status badge (all 4 statuses)
Optimize button → POST /api/routes/optimize with {staffId, date}
Daily route load via GET /api/routes/daily?staffId=…&date=…
UAT_PLAYBOOK.md §5.28 — 8 test cases (nav, code-split, map, cards, summary, optimize, groomer filter, empty state)
Tests: manager view, groomer selector toggle, groomer auto-filter, optimize POST

No issues found. Safe to merge to uat.

## QA Review — APPROVED ✅ **Reviewed for GRO-2272 (dev → uat promotion, GRO-2158 Route Planner)** ### CI - Lint & Typecheck ✅ - Test ✅ (176 passing) - Docker Build ✅ ### Spec checklist | Item | Result | |------|--------| | `/admin/routes` routed in `AdminLayout`, nav link added | ✅ | | Date picker + groomer selector rendered | ✅ | | Groomer selector hidden for `groomer` role (resolved via `GET /api/staff/me`) | ✅ | | `react-leaflet` loaded via `React.lazy` → separate code-split chunk | ✅ | | OSM tile attribution present | ✅ | | Numbered divIcon pins per stop + connecting `Polyline` | ✅ | | Stop cards: time, client name, address, travel-from-previous, conflict flag | ✅ | | Summary: total travel time (formatted), distance km, status badge (all 4 statuses) | ✅ | | **Optimize** button → `POST /api/routes/optimize` with `{staffId, date}` | ✅ | | Daily route load via `GET /api/routes/daily?staffId=…&date=…` | ✅ | | `UAT_PLAYBOOK.md` §5.28 — 8 test cases (nav, code-split, map, cards, summary, optimize, groomer filter, empty state) | ✅ | | Tests: manager view, groomer selector toggle, groomer auto-filter, optimize POST | ✅ | No issues found. Safe to merge to `uat`.
Flea Flicker merged commit 980615b8e6 into uat 2026-06-09 02:00:56 +00:00
Sign in to join this conversation.