Explorar o código

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 hai 1 mes
pai
achega
909657621d
Modificáronse 2 ficheiros con 118 adicións e 20 borrados
  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
   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]`
 templates.** Werkt een call via curl wél maar vanuit de app/Response &
 Test-panel niet: check het Headers-tabblad — een handmatig ingeplakte

+ 102 - 20
TASKS.md

@@ -1,13 +1,42 @@
 # 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
 hieronder is zelfstandig te begrijpen zonder de chat gelezen te hebben
 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
 bestanden ongecommit in `lib/`/`ios/`/`.gitignore`, exact overeenkomend
 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
   Else-tak). Functioneel al correct (Remove/Add-acties kloppen, bevestigd
   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
 
@@ -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
   code-only werk, en vraagt eerst een ontwerpkeuze van Bob).
 - **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
   verwijderen — zie Bob's beslissing 3 hieronder) — nog niet opgepakt.
   Uitloggen kan volledig lokaal (geen backend nodig, alleen
@@ -1499,6 +1558,29 @@ code).
     (`FavorietenAgendaTESTKANWEGCall`)** — nog steeds aanwezig in
     `api_calls.dart`, nog steeds geen enkele live-referentie
     (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`
     (`FavorietenAgendaCall`) — geen enkele huidige live-referentie,
     maar dit is de call die P1-7's geplande "Persoonlijke