Browse Source

P2-24 B: horecacategorieen gemeten op devbob -- klaar voor productie

Anoniem HTTP 200, 129 records, 6 wortels (exact de zes tab-tids) en 123
subcategorieen, boom niet dieper dan 1 niveau. Elke tab heeft subcategorieen
(4 t/m 52). horcatSubTids/horcatSubLabels tegen deze echte respons nagerekend:
lijsten even lang, geen lege labels, geen duplicaten, randgevallen veilig.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 9 hours ago
parent
commit
2f5d466b9a
1 changed files with 24 additions and 4 deletions
  1. 24 4
      TASKS.md

+ 24 - 4
TASKS.md

@@ -32,7 +32,7 @@ oppakken.
 | **B1** | **App-icoon: PNG 1024×1024, transparant, beeldmerk op ±60 %** | 🔴 Blokkeert. Op een toestel staat nu "itgaanskrant.co" |
 | **G** | Google Play-checklist G0–G4 | Volledige checklist hieronder, afvinkbaar |
 | **66** | Crashlytics: Firebase-console nakijken + Crashtest-knop opruimen | App-kant is bewezen (rapport met status 200); alleen de console-check en het opruimen zijn nog van jou |
-| **P2-24 B** | `horecacategorieen` publiek maken (1 access callback) | Endpoint bestaat al en geeft al `parent_tid`; alleen `user_is_logged_in` eraf. Blokkeert de tab-bewuste categoriedropdown |
+| **P2-24 B** | `horecacategorieen` publiek: **devbob ✅, nog naar productie** | Werkt en is nagemeten op devbob. Na deploy: `cc all`, resource aanvinken op het `flutterdrup`-endpoint, anoniem testen, Cloudflare 2-uurs-rule |
 | **P1-17** | Engelse vertalingen, één ronde | 46 velden op de twee aanmaakpagina's + 3 losse |
 | **Bij livegang** | Zes schakelaars en opruimklussen | Eigen blok hieronder |
 | **Drupal** | taak 56, P2-25 | Eigen blokken hieronder (P1-42/P1-43 zijn af, nagemeten 2026-09-19) |
@@ -862,10 +862,30 @@ zaak die op twee tabs staat is uit die respons principieel niet toe te wijzen aa
 de juiste hoofdcategorie. Met `parent_tid` uit `horecacategorieen` is dat één
 filterregel.
 
+**✅ Gemeten op devbob 2026-09-19 (Bob heeft de access callback omgezet):**
+HTTP 200 anoniem, 129 records, 8,8 KB, 0,22 s. Exact **6 termen op diepte 0** —
+de zes tab-tids — en 123 op diepte 1. Dieper dan 1 gaat de boom niet, dus
+"directe kinderen van de tab-tid" is precies de goede filterregel.
+
+| Tab | `horcat` | naam in de boom | subcategorieën |
+|---|---|---|---|
+| Activiteiten | 17969 | Activiteit | 26 |
+| Cultuur | 17963 | Cultuur & Info | 15 |
+| Eetgelegenheden | 34 | Eetgelegenheden | 52 |
+| Overnachten | 17965 | Overnachten | 4 |
+| Uitgaan | 17967 | Uitgaansgelegenheid | 19 |
+| Verhuur/catering | 17968 | Verhuur, Verkoop & Catering | 7 |
+
+⚠️ De naam van de wortelterm wijkt soms af van het tablabel (*Uitgaan* vs
+*Uitgaansgelegenheid*). Onschadelijk — er wordt op **tid** gefilterd, niet op naam.
+
+`horcatSubTids`/`horcatSubLabels` zijn tegen deze echte respons nagerekend: per tab
+even lang, geen lege labels, geen duplicaten, en alle randgevallen (`respons` null
+of leeg, `horcatTid` null/leeg, onbekend tid) geven netjes een lege lijst.
+
 **App-deel (Claude), zodra het endpoint publiek is:**
-1. ✅ Custom functions `horcatSubTids(respons, horcatTid)` en
-   `horcatSubLabels(respons, horcatTid)` — filteren op `parent_tid == horcatTid`,
-   zelfde patroon als het bestaande `categorieSubTids`/`categorieSubLabels`.
+1. ✅ **AF** — custom functions `horcatSubTids` en `horcatSubLabels` staan in het
+   project (2026-09-19, export-geverifieerd, `dart analyze` 0 errors).
 2. Dropdown per tab op `horecagelegenhedenOverzichtCurrent`, gevoed uit één
    `horecacategorieen`-call (`cache: true`).
 3. Extra argument op `filterHorecagelegenheden(...)` — zelfde route als het