Browse Source

TASKS.md: P1-7 Tab 1/Tab 3-blokkering gecorrigeerd (UitgaanstabelCall/FavorietenAgendaCall bestaan al, geen nieuw Drupal-werk nodig); P2-7 API Calls-paneel-delete bevestigd niet-persisterend na 2 pogingen, nieuw blocker-patroon toegevoegd aan CLAUDE.md

bob 1 tháng trước cách đây
mục cha
commit
909657621d
2 tập tin đã thay đổi với 118 bổ sung20 xóa
  1. 16 0
      CLAUDE.md
  2. 102 20
      TASKS.md

+ 16 - 0
CLAUDE.md

@@ -734,6 +734,22 @@ exacte pixelpositie te bepalen vóór je klikt.
   code echt naar de variabele verwijst en niet naar een lege/letterlijke
   code echt naar de variabele verwijst en niet naar een lege/letterlijke
   waarde.
   waarde.
 
 
+**API Calls-paneel: "Delete" op een losse call kan ook niet doorzetten
+naar de export — niet alleen een widget-tree/canvas-probleem.**
+Bevestigd 2026-08-14 (`FavorietenAgendaTESTKANWEGCall`, P2-7): Delete-
+knop → bevestigingsdialoog ("Delete this API Call from the project?")
+→ Delete — de dialoog sluit zichtbaar netjes (geen freeze), maar de
+call **staat na een page-reload gewoon weer terug** in de lijst, 2x
+gereproduceerd, ook bevestigd via een losse verse
+`flutterflow export-code` (klasse nog gewoon aanwezig). Dit paneel is
+een platte lijst, geen canvas-coördinaten — dus dit is geen instantie
+van de bekende widget-tree-klikonbetrouwbaarheid, eerder een breder
+"ziet er opgeslagen uit in de UI, bereikt de export niet"-patroon (zie
+ook P1-13/P0-3 punt 1 in `TASKS.md`) dat blijkbaar ook dit paneel kan
+raken. Zelfde vuistregel: na 1-2 pogingen niet blijven proberen, aan
+Bob overdragen (zijn eigen browser/sessie kan een andere uitkomst
+geven, nog niet getest).
+
 **API-call headers: check op hardcoded literals i.p.v. `[varname]`
 **API-call headers: check op hardcoded literals i.p.v. `[varname]`
 templates.** Werkt een call via curl wél maar vanuit de app/Response &
 templates.** Werkt een call via curl wél maar vanuit de app/Response &
 Test-panel niet: check het Headers-tabblad — een handmatig ingeplakte
 Test-panel niet: check het Headers-tabblad — een handmatig ingeplakte

+ 102 - 20
TASKS.md

@@ -1,13 +1,42 @@
 # Uitgaanskrant — takenlijst
 # Uitgaanskrant — takenlijst
 
 
-Bijgewerkt: 2026-08-14 (Claude, code-only — geen builder-UI, Bob ging
-gelijktijdig zelf aan de slag in een andere sessie).
+Bijgewerkt: 2026-08-14 (Claude, tweede sessie zelfde dag — Bob deed
+"kleine dingen" in zijn eigen builder-tabblad, Claude gebruikte een
+eigen los tabblad in dezelfde Chrome).
 Zie `CLAUDE.md` voor werkinstructies/conventies. Elke openstaande taak
 Zie `CLAUDE.md` voor werkinstructies/conventies. Elke openstaande taak
 hieronder is zelfstandig te begrijpen zonder de chat gelezen te hebben
 hieronder is zelfstandig te begrijpen zonder de chat gelezen te hebben
 waarin hij ontstond.
 waarin hij ontstond.
 
 
-**Deze sessie (2026-08-14, code-only, geen builder-UI gebruikt omdat Bob
-meldde gelijktijdig zelf in een andere sessie aan de slag te gaan —
+**Deze sessie (2026-08-14, tweede ronde, code-audit + 1 builder-poging):**
+op verzoek ("pak nog wat taken op") eerst een code-only audit van
+`api_calls.dart` tegen de openstaande P1-7-taak (favorietenpagina) —
+**twee stale/onvolledige aannames in P1-7 gecorrigeerd, geen van beide
+had nog nieuw Drupal-werk nodig:**
+- **Tab 1 "Persoonlijke agenda"**: bleek nog "niet onderzocht", maar
+  `UitgaanstabelCall`/`UitgaanSliderCall` ondersteunen al een
+  `townid`-parameter — rechtstreeks bruikbaar door per favoriete
+  gemeente (`favorieteGemeenteIds`) een call te doen. Zie bijgewerkte
+  P1-7 hieronder.
+- **Tab 3 "Favoriete Gelegenheden"**: de bestaande blokkering-op-P0-7
+  was stale (P0-7 is al op 2026-08-13 gefixt) — én er bleek een
+  simpelere, nooit eerder overwogen route: `FavorietenAgendaCall`
+  (sessie-geauthenticeerd, geeft al server-side de favoriete
+  gelegenheden van de ingelogde gebruiker terug in 1 call). Zie
+  bijgewerkte "Drupal dingen"-lijst hierboven — **niet langer een
+  Bob-batch-item, Claude/een volgende sessie kan dit nu direct
+  bouwen.**
+Daarna 1 mechanische builder-taak geprobeerd (P2-7-bijvangst:
+`FavorietenAgendaTESTKANWEGCall` verwijderen via het API Calls-paneel)
+— **2x geprobeerd, 2x niet doorgezet naar een verse export/reload**,
+zelfde "ziet er opgeslagen uit maar bereikt de export niet"-patroon als
+elders in dit bestand, maar nu voor het eerst ook op het (verder
+betrouwbare) API Calls-paneel i.p.v. alleen de widget-tree/canvas. Zie
+de nieuwe blocker-notitie bij P2-7. Niet verder geprobeerd (staande
+regel: na 1-2 pogingen overdragen aan Bob), geen schade aangericht.
+
+**Vorige sessie (2026-08-14, eerste ronde, code-only — geen builder-UI
+gebruikt omdat Bob meldde gelijktijdig zelf in een andere sessie aan de
+slag te gaan —
 gedeelde Chrome dus niet ingezet):** `ff-session-check.sh` toonde 20
 gedeelde Chrome dus niet ingezet):** `ff-session-check.sh` toonde 20
 bestanden ongecommit in `lib/`/`ios/`/`.gitignore`, exact overeenkomend
 bestanden ongecommit in `lib/`/`ios/`/`.gitignore`, exact overeenkomend
 met de al-bevestigde-maar-nooit-gecommitte P1-19/P1-20/P1-11/P2-7-
 met de al-bevestigde-maar-nooit-gecommitte P1-19/P1-20/P1-11/P2-7-
@@ -483,20 +512,39 @@ toch al wachten op ander Drupal-werk hier verzamelen i.p.v. los oppakken
   en Fill Color staat op `Color(0x0AFFFFFF)` i.p.v. wit (zoals de
   en Fill Color staat op `Color(0x0AFFFFFF)` i.p.v. wit (zoals de
   Else-tak). Functioneel al correct (Remove/Add-acties kloppen, bevestigd
   Else-tak). Functioneel al correct (Remove/Add-acties kloppen, bevestigd
   via export 2026-08-13) — puur cosmetisch restpunt.
   via export 2026-08-13) — puur cosmetisch restpunt.
-- **P1-7 Tab 3 "Favoriete Gelegenheden" kan nog niet gebouwd worden met
-  de bestaande API-calls — blokkeert op P0-7.** `EstablishmentInfoCall`
-  (bedoeld om 1 gelegenheid op te halen via `nid`) geeft server-side
-  HTTP 500 voor elke `nid` (zie P0-7, root cause al bevestigd
-  Drupal-kant). `EstablishmentsCall` (de wél werkende lijst-endpoint)
-  filtert alleen op categorie+plaats (`horcat`/`townid`) en heeft geen
-  nid-filter, dus ongeschikt om een specifieke set favoriete nid's op te
-  halen. Nodig: óf P0-7's Drupal-500 fixen (dan is `EstablishmentInfoCall`
-  weer bruikbaar per nid in een loop), óf een nieuwe Drupal-view die een
-  lijst van meerdere specifieke nid's in 1 call teruggeeft (efficiënter
-  dan N losse calls per favoriet). **Claude: geen builder-stappen voor
-  Tab 3 geven vóórdat dit is opgelost** — een eerdere instructie deze
-  sessie (2026-08-13) om `EstablishmentInfoCall` te gebruiken voor Tab 3
-  was hierdoor fout, tijdig gecorrigeerd vóór uitvoering.
+- **P1-7 Tab 3 "Favoriete Gelegenheden" — blokkering op P0-7 is stale,
+  taak is nu ontgrendeld (2026-08-14, Claude, code-audit).** Deze regel
+  ging ervan uit dat `EstablishmentInfoCall` nog HTTP 500 gaf — maar
+  P0-7 is inmiddels gefixt (zie boven, live bevestigd 2026-08-13) en
+  `EstablishmentInfoCall` werkt weer gewoon per `nid`. Bovendien bleek
+  bij het herlezen van `api_calls.dart` een **kant-en-klare, nog
+  efficiëntere route die niet eerder overwogen was:**
+  `FavorietenAgendaCall` (endpoint
+  `flutterfavorietenagenda.json?display_id=services_1`, sessie-cookie-
+  geauthenticeerd — dus server-side al gefilterd op de ingelogde
+  gebruiker, geen client-side nid-lijst nodig) geeft in **1 call**
+  precies `establishmentTitle`/`establishmentLogo`/`establishmentNid`
+  terug voor alle favoriete gelegenheden van de ingelogde gebruiker.
+  Bevestigd functioneel via P0-4/P1-18 (status 200 + echte data met
+  testaccount `bobcity`), en bevestigd **nergens in `lib/` aangeroepen**
+  (`grep` op `FavorietenAgendaCall` buiten `api_calls.dart`: 0
+  treffers) — dus volledig vrij om nu aan te sluiten. **Twee
+  realistische opties, geen van beide nog Drupal-werk nodig:**
+  1. **Simpelste/efficiëntste:** `FavorietenAgendaCall` rechtstreeks in
+     een `ListView`/`GridView` tonen (titel + logo, tik → navigeer naar
+     `HorecagelegenheidCurrent(nid: ...)` voor de rest van de details).
+     1 API-call ongeacht het aantal favorieten, geen client-side
+     nid-lijst-afhankelijkheid (werkt zelfs op een nieuw toestel vóór
+     `favorieteHorecaNids` lokaal gevuld is).
+  2. **Meer werk, herbruikt de bestaande kaart-widget:** loop over de al
+     bestaande client-side `favorieteHorecaNids` (App State) en roep
+     `EstablishmentInfoCall` per nid aan — geeft alle velden die
+     `HorecagelegenheidoverzichtKaartWidget` nodig heeft (`adres`/
+     `plaats`/`categorie`, niet alleen titel/logo), dus visueel
+     consistent met de rest van de app, maar N calls i.p.v. 1.
+  **Claude: builder-stappen voor Tab 3 kunnen nu gewoon gegeven worden**
+  (optie 1 is de aanbevolen eerste keus qua efficiëntie) — dit hoeft niet
+  langer te wachten op een Drupal-sessie met Bob.
 
 
 ## P1 — snel na livegang
 ## P1 — snel na livegang
 
 
@@ -844,8 +892,19 @@ lokale/UI-kant + look&feel oppakken zolang die niet op Drupal wacht.
   Geen van beide is deze sessie uitgevoerd (buiten scope voor
   Geen van beide is deze sessie uitgevoerd (buiten scope voor
   code-only werk, en vraagt eerst een ontwerpkeuze van Bob).
   code-only werk, en vraagt eerst een ontwerpkeuze van Bob).
 - **Tab 1 "Persoonlijke agenda"** (events in favoriete gemeente(n)) —
 - **Tab 1 "Persoonlijke agenda"** (events in favoriete gemeente(n)) —
-  nog niet uitgezocht of hier al een geschikte Drupal-call voor bestaat;
-  vermoedelijk ook Drupal-afhankelijk, nog niet onderzocht.
+  **uitgezocht (2026-08-14, Claude, code-audit): geen nieuwe Drupal-call
+  nodig, bestaande calls volstaan al.** `UitgaanstabelCall`/
+  `UitgaanSliderCall` (`api_calls.dart`) accepteren allebei al een
+  `townid`-parameter (nu gebruikt door `PUitgaantabelKaartComponent`/
+  `PUitgaanSliderComponent` voor de huidige gekozen gemeente) — exact
+  wat hier nodig is. Bouwplan: loop over `favorieteGemeenteIds` (App
+  State, al gevuld zodra Tab 2 ooit favorieten heeft) en roep
+  `UitgaanstabelCall` per gemeente-id aan, resultaten samenvoegen tot
+  1 lijst (of simpeler: hergebruik `PUitgaantabelKaartComponent` als los
+  blok per favoriete gemeente, met een kopje erboven = gemeentenaam).
+  Geen Drupal-wijziging nodig — wel afhankelijk van Tab 2's
+  favoriet-toggle-UI (zie hierboven), want zonder die blijft
+  `favorieteGemeenteIds` altijd leeg.
 - **"Gebruiker"-tab** (wachtwoord wijzigen, uitloggen, account
 - **"Gebruiker"-tab** (wachtwoord wijzigen, uitloggen, account
   verwijderen — zie Bob's beslissing 3 hieronder) — nog niet opgepakt.
   verwijderen — zie Bob's beslissing 3 hieronder) — nog niet opgepakt.
   Uitloggen kan volledig lokaal (geen backend nodig, alleen
   Uitloggen kan volledig lokaal (geen backend nodig, alleen
@@ -1499,6 +1558,29 @@ code).
     (`FavorietenAgendaTESTKANWEGCall`)** — nog steeds aanwezig in
     (`FavorietenAgendaTESTKANWEGCall`)** — nog steeds aanwezig in
     `api_calls.dart`, nog steeds geen enkele live-referentie
     `api_calls.dart`, nog steeds geen enkele live-referentie
     (bevestigd). Losse, kleine restopruiming.
     (bevestigd). Losse, kleine restopruiming.
+    - **⚠️ Poging door Claude (2026-08-14), 2x geprobeerd — nieuw
+      bevestigd blocker-patroon, geen wijziging aangebracht.** API
+      Calls-paneel → `FavorietenAgendaTESTKANWEG` → **Delete** →
+      bevestigingsdialoog ("Delete this API Call from the project?")
+      → **Delete**: de dialoog sluit netjes (geen freeze, i.t.t. de
+      bekende geneste-Set-Variable-freezes elders in `CLAUDE.md`), maar
+      de call **staat na een page-reload gewoon weer terug** in de
+      lijst — 2x gereproduceerd (2e poging zelfs met een expliciete
+      `Synced`-check vóór het navigeren). Een losse verse
+      `flutterflow export-code` ná de eerste poging bevestigde
+      hetzelfde: `class FavorietenAgendaTESTKANWEGCall` nog gewoon
+      aanwezig in `api_calls.dart`. **Dit is niet hetzelfde patroon als
+      de al bekende widget-tree-klikproblemen** (dit paneel is een
+      platte lijst, geen canvas/tree-coördinaten, en de Delete-flow zelf
+      werkt zichtbaar/klikbaar) — eerder een nieuw voorbeeld van het
+      bredere "ziet er opgeslagen uit in de builder-UI, bereikt nooit de
+      export"-patroon (zie P1-13/P0-3 punt 1 voor eerdere instanties).
+      **Kant-en-klaar voor Bob:** API Calls-paneel (linker sidebar-icoon
+      onder "Connect") → `FavorietenAgendaTESTKANWEG` → **Delete**-knop
+      onderaan → **Delete** bevestigen — zelfde stappen, kost hem
+      waarschijnlijk hetzelfde (nog niet getest of het bij hem wél
+      persisteert), maar dit hoort niet nog een 3e keer door Claude
+      geprobeerd te worden zonder nieuwe informatie.
   - **Nog niét dood, wel ongebruikt — laten staan:** `FavorietenAgenda`
   - **Nog niét dood, wel ongebruikt — laten staan:** `FavorietenAgenda`
     (`FavorietenAgendaCall`) — geen enkele huidige live-referentie,
     (`FavorietenAgendaCall`) — geen enkele huidige live-referentie,
     maar dit is de call die P1-7's geplande "Persoonlijke
     maar dit is de call die P1-7's geplande "Persoonlijke