feat: MPS-24 — chip strip stays on every SERP page

Operator: 'leave the chits on screen for all serp pages.' The
horizontal tag-chip-strip only rendered on the shop home; drilling
into a category (tag-detail SERP) dropped it, so hopping categories
meant going back.

- Extracted the chip strip (duplicated verbatim in home.j2 + shop.j2)
  into a single _facet_nav.j2 chip_strip(...) macro — DRY, one source
  of truth — and added it to shop_tag.j2 under the header.
- shop_tag_detail view already supplied home_chips / active_tag / sort
  / price, so this was a template-only gap. Active category chip
  highlights on the SERP and carries facet_qs (sort/price compose).
- Search SERP renders home.j2 so it gets the macro for free.

Test: +test_chip_strip_stays_on_tag_detail_serp. 1136 passed.
Docs: mps-24.md Phase 2.8i.
This commit is contained in:
russell@unturf.com 2026-05-16 11:46:16 -04:00
parent 3bb05e4b5d
commit 09f5a68428
No known key found for this signature in database
6 changed files with 85 additions and 39 deletions

View file

@ -363,6 +363,19 @@ Tests (`test_functional.py::TestProductTagsSpa`):
Deferred (occasional click, not the hot path): AJAX-ifying the
"Suggest categories" link — still a full navigation by design.
**Phase 2.8i — chip strip on every SERP page** (shipped 2026-05-16):
operator: "leave the chits on screen for all serp pages." The
horizontal `tag-chip-strip` rendered only on the shop home; drilling
into a category (tag-detail SERP `shop_tag.j2`) dropped it, so hopping
categories meant going back. Extracted the (duplicated) chip strip
from `home.j2`/`shop.j2` into a single `_facet_nav.j2` `chip_strip(...)`
macro and added it to `shop_tag.j2` under the header. The
`shop_tag_detail` view already supplied `home_chips` / `active_tag` /
sort / price, so this was a template-only gap; the active category
chip highlights on the SERP and carries `facet_qs`. Search SERP
already renders `home.j2` so it gets the macro for free. Test:
`test_chip_strip_stays_on_tag_detail_serp`.
**Phase 2.8h — facets compose, not clobber** (shipped 2026-05-16):
operator: "switching one breaks it" — picking a category reset the
active Sort + Price. Cause: the facet category links / "All" link /