Selaa lähdekoodia

TASKS.md: Favorieten Tab 1 bugcluster gedocumenteerd (POST->GET, JSON Path fix, inhoud-null-crash) + resterende TabPersAgenda On-Tap POST-fix overgedragen aan Bob

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bob 3 viikkoa sitten
vanhempi
commit
17f1eb1c8c
1 muutettua tiedostoa jossa 50 lisäystä ja 0 poistoa
  1. 50 0
      TASKS.md

+ 50 - 0
TASKS.md

@@ -1063,6 +1063,17 @@ lokale/UI-kant + look&feel oppakken zolang die niet op Drupal wacht.
   zie het voormalige P0-4 hierboven, zelfde live pair-sessie.)*
 
 **Nog open:**
+- **Eigenaar: Bob.** Tweede `drupalRequest`-aanroep in
+  [lib/favorieten/favorieten_widget.dart:252](lib/favorieten/favorieten_widget.dart:252)
+  (`TabPersAgenda`'s eigen "On Tap"-actie, vuurt als je expliciet op
+  het tabblad tikt) staat nog op `method: 'POST'` — zelfde 404-bug als
+  hierboven, alleen niet meegenomen in de On-Page-Load-fix. Builder-pad:
+  component/pagina met de `TabPersAgenda`-Tab-node → Actions-tab →
+  "On Tap" → Action Flow Editor → `drupalRequest`-custom-action openen
+  → `method`-argument van `'POST'` naar `'GET'` → Confirm, wachten op
+  "Synced". Verifiëren met een verse export +
+  `grep -n "drupalRequest(" lib/favorieten/favorieten_widget.dart` (beide
+  treffers moeten `'GET'` tonen).
 - **Tab 2 "Favoriete gemeenten" vullen** — geen Drupal-blocker bekend:
   `gemeenteNaamById` (custom function) + `favorieteGemeenteIds` kunnen in
   principe al een lijst van gemeentenamen tonen, zodra er ooit iets in
@@ -1138,6 +1149,45 @@ aangevinkt op
 `https://uitgaanskrant.com/en/admin/structure/services/list/flutterdrup/resources`.
 Tab 1 "Persoonlijke agenda" haalt nu live data op. Uit deze lijst
 verwijderd.)*
+
+*(Vervolg-bugs op Tab 1, zelfde 404-fix-sessie, afgerond 2026-08-19 —
+Bob + Claude samen, live pair-fix + verse-export-verificatie. Ná de
+server-side 404-fix werkte de pagina via `curl` maar nog niet via de
+app zelf — twee losse client-side bugs bleken de resterende oorzaak:
+1. **`drupalRequest`-aanroepen gebruikten `'POST'`, maar Drupal
+   Services' 'index'-operatie beantwoordt alleen GET** (POST → 404,
+   ook al staat de resource nu wel geactiveerd). Op de Scaffold's
+   "On Page Load"-trigger `method` gewijzigd naar `'GET'` (Claude,
+   builder, bevestigd via verse export).
+2. **JSON Path-bug op alle 9 `UitgaantabelKaartWidget`-parameters**
+   (`logo`, `categorie`, `titel`, `horecagelegenheid`, `adres`,
+   `plaats`, `datum`, `nid`, `horecagelegenheidNid`): gebonden met
+   `r'''$[:].veld'''` (array-wildcard-syntax, alleen geldig op een hele
+   array) i.p.v. `r'''$.veld'''` (correct voor een los loop-item) —
+   gaf overal `null` terug, met een `Null check operator used on a
+   null value`-crash op `titel` tot gevolg (`widget!.titel!.toString()`
+   in `uitgaantabel_kaart_widget.dart`). Bob heeft alle 9 velden zelf
+   in de builder gecorrigeerd, bevestigd via verse export.
+3. **Losstaande null-crash op `inhoud`** (zelfde widget,
+   `widget!.inhoud!.toString()`): `UitgaantabelKaartWidget` is een
+   gedeeld component, en Favorieten Tab 1 geeft bewust `inhoud: null`
+   mee (geen equivalent veld in deze API-respons). "Default Variable
+   Value" bleek hier **geen** werkende fix (`inhoud` is een JSON/
+   `dynamic`-getypeerde parameter, geen String — de default-waarde
+   bleef na Confirm leeg/niet-opgeslagen, bevestigd via 2x verse
+   export). Werkende fix: **Wrap Widget → ConditionalBuilder** op de
+   `Text-inhoud`-node, conditie **"inhoud is set"** (First Value =
+   rauwe `inhoud`-parameter, operator "Is Set", géén Second Value
+   nodig), Else-tak leeg. Genereert
+   `if (widget!.inhoud != null) { return Text(widget!.inhoud!.toString(), ...); }`
+   — bevestigd via verse export. **Dit component wordt op meerdere
+   plekken gebruikt** (o.a. `HomeUitgaantabelKaartComponent`) — de fix
+   is op het gedeelde component zelf toegepast, dus geldt overal waar
+   `inhoud: null` wordt meegegeven, zonder de plekken met een echte
+   inhoud-waarde te raken.
+Lokale repo bijgewerkt via een verse `flutterflow export-code` in de
+projectmap + `flutter analyze` (geen nieuwe errors, alleen de
+gebruikelijke gegenereerde info/warnings).)*
 *(Anonieme API-call-bug op Tab 3 afgerond 2026-08-19 — Claude, builder
 + verse-export-verificatie: `FavorietenAgendaCall`'s Backend Query op de
 ListView had geen `sessionName`/`sessionId` gebonden, dus de call ging