Procházet zdrojové kódy

TASKS.md: P1-7 open vraag vervangen door 2 kant-en-klare builder-recepten (horeca-hartjes Drupal-sync + Wachtwoord-wijzigen-link)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bob před 3 týdny
rodič
revize
f5b126ba78
1 změnil soubory, kde provedl 49 přidání a 7 odebrání
  1. 49 7
      TASKS.md

+ 49 - 7
TASKS.md

@@ -1580,13 +1580,55 @@ leek overbodige scope-uitbreiding.)*
     dat hier geverifieerd is). Enige resterende twijfel over deze hele
     feature — verder geen actie nodig tenzij Bob over ~30 dagen wil
     controleren dat de sweep echt draait.
-- **Open vraag aan Bob (blokkeert de Drupal-sync van favorieten):**
-  bestaat er al een Drupal-endpoint om een favoriet (horeca of gemeente)
-  toe te voegen/verwijderen voor een ingelogde gebruiker (bv.
-  Flag-module of een custom Services-resource), of moet dat nog gebouwd
-  worden? Zonder endpoint-naam/-vorm blijft de huidige toggle **lokaal-only**
-  (secureStorage, geen sync naar Drupal bij inloggen op een ander
-  toestel).
+- **Restpunt A — horeca-hartjes syncen nog niet naar Drupal (2026-08-24,
+  Claude, code-only geverifieerd via `grep`).** Het generieke
+  `favorieten`-Services-endpoint (flag/unflag, node + taxonomy_term)
+  bestaat sinds P1-26 en wordt al gebruikt door het gemeente-hartje op
+  `HeaderButtonsComponent` — maar de twee oudere horeca-hartjes
+  (`horecagelegenheidoverzicht_kaart_widget.dart:340`,
+  `horecagelegenheid_current_widget.dart:370`) doen nog steeds alleen
+  een lokale `FFAppState().favorieteHorecaNids`-add/remove, geen
+  `drupalRequest`-aanroep — botst met Bob's beslissing 1 hieronder
+  ("Drupal-gesynchroniseerd, niet puur lokaal"). **Kant-en-klaar
+  builder-recept (kopieer 1-op-1 het al werkende gemeente-hartje-
+  patroon), per widget in de If-tak (remove) en Else-tak (add) van de
+  bestaande `ConditionalBuilder` een extra actie toevoegen vóór/na de
+  bestaande `removeFromFavorieteHorecaNids`/`addToFavorieteHorecaNids`:**
+  - Add Action → Custom Action → `drupalRequest`, argumenten:
+    `method` = `'POST'`, `url` =
+    `'https://uitgaanskrant.com/nl/flutterdrup/favorieten/flag.json'`
+    (If-tak/add) of `.../favorieten/unflag.json` (Else-tak/remove),
+    `sessionName` = App State `userSessionname`, `sessionId` = App
+    State `userSessionid`, `token` = App State `userToken`, `body` =
+    letterlijk `{"entity_id": <nid-component-parameter>, "entity_type":
+    "node"}` (dubbele quotes escapen als `\"`, zelfde format als
+    `header_buttons_component_widget.dart:228`).
+  - **Let op:** dit vuurt nu ook voor een uitgelogde gebruiker (lege
+    sessie) — `drupalRequest` faalt dan stil (403, teruggegeven als
+    `[]`, geen crash) en de lokale toggle blijft gewoon werken, dus
+    functioneel geen regressie, maar wel een onnodige netwerkcall.
+    Desgewenst wrappen in een Conditional op `userSessionid` "Is Set",
+    net als elders in dit bestand — niet strikt noodzakelijk voor
+    correctheid.
+  - Bouw dit op **beide** widgets (overzicht-kaart én detailpagina) in
+    dezelfde sessie — zelfde patroon, twee plekken, past bij de
+    "groepeer per paginagebied"-vuistregel.
+  - Geen `is_flagged`-sync-on-load nodig (zelfde bewuste keuze als bij
+    het gemeente-hartje, zie de P1-26-notitie hierboven) — lokale lijst
+    blijft de bron van waarheid bij page-load, dit voegt alleen de
+    write-sync toe.
+- **Restpunt B — "Wachtwoord wijzigen" ontbreekt nog op de
+  Gebruiker-tab (2026-08-24, Claude, code-only geverifieerd).** Kleiner
+  dan gedacht: er bestaat al een volledig werkende
+  `lib/wachtwoord_vergeten/`-pagina (roept `RequestNewPasswordCall` aan,
+  POST naar `.../user/request_new_password.json`) — nergens in de app
+  aan een knop gekoppeld. **Simpelste/snelste route: geen nieuwe flow
+  bouwen, gewoon een `ListTile` "Wachtwoord wijzigen" op de
+  Gebruiker-tab toevoegen** (dupliceer de bestaande "Uitloggen"/
+  "Account verwijderen"-ListTile, zelfde styling, zie het bekende
+  Duplicate-recept in `CLAUDE.md`) met On Tap → Navigate To →
+  `wachtwoordVergeten`-pagina (geen parameters nodig). Kost een paar
+  minuten in de builder, geen Drupal-werk.
 
 **Bob's beslissingen (2026-08-09, nog steeds leidend):**
 1. Favorieten (zowel horeca als gemeenten) worden **Drupal-gesynchroniseerd**,