Kaynağa Gözat

TASKS.md + CLAUDE.md: account-verwijderen feature volledig afgerond (Drupal + app), nieuwe builder-recepten gedocumenteerd

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bob 3 hafta önce
ebeveyn
işleme
a8262f1ac8
2 değiştirilmiş dosya ile 53 ekleme ve 34 silme
  1. 16 0
      CLAUDE.md
  2. 37 34
      TASKS.md

+ 16 - 0
CLAUDE.md

@@ -890,6 +890,22 @@ gratis doorstart, elke reload kost een herhaling van stap 1.
   P0-3). Vuistregel blijft: 1-2 pogingen (incl. 1 reload), dan
   overdragen met exacte stappen — niet blijven proberen.
 
+**Een nieuwe rij toevoegen aan een lijst met bestaande, vergelijkbare
+rijen (bv. nog een `ListTile` in een menu): dupliceer een bestaande rij
+i.p.v. Insert Widget te gebruiken.** Rechtsklik de bestaande node →
+**Duplicate (Ctrl+D)** → de kopie verschijnt als sibling → pas titel-
+tekst en On Tap-actie aan op de kopie. Betrouwbaarder dan de bekende
+Insert-Widget-onbetrouwbaarheid (zie hieronder), en scheelt het
+handmatig opnieuw opbouwen van styling (padding, border radius,
+tileColor etc.). Bevestigd 2026-08-24 op Favorieten' Gebruiker-tab
+("Account verwijderen"-knop toegevoegd naast de bestaande
+"Uitloggen"-knop).
+
+**"Launch URL"-actie staat onder categorie "Share" in de
+Actions-zoeklijst, niet onder "Navigation"** — logisch te missen.
+Zoek in de Action Flow Editor gewoon op "Launch URL", dat vindt 'm
+ongeacht categorie.
+
 **Tooltip toevoegen aan een icon-only widget:** rechtsklik → Wrap
 Widget (Ctrl+B) → 4e rij van de grid (kan geclipt lijken) → 1e icoon
 (spraakwolkje) = "Tooltip". Genereert een `AlignedTooltip`, geen losse

+ 37 - 34
TASKS.md

@@ -1541,42 +1541,45 @@ leek overbodige scope-uitbreiding.)*
   uit (genereert `context.goNamed(...)` i.p.v. `pushNamed`, dus geen
   terugknop-pad naar de net-verlaten sessie). **Nog open, zelfde
   tab:** geen gebruikersnaam zichtbaar (zie UX-gat hierboven),
-  "Wachtwoord wijzigen" en "Account verwijderen" (zie Bob's
-  beslissing 3 hieronder — account verwijderen heeft mogelijk
-  AVG-implicaties aan Drupal-kant en is een App-Store-vereiste, zie
-  daar) — deze zijn niet meegenomen, eigen vervolgtaak.
-  **Account verwijderen, Drupal-kant afgerond en live getest
-  (2026-08-24, Bob + Claude samen — devbob).** Bob wil geen volledige
-  in-app-flow bouwen; gekozen aanpak: account direct blokkeren
-  (`status=0`, kan niet meer inloggen) + na 30 dagen automatisch hard
-  verwijderen via cron, i.p.v. direct verwijderen. Twee ingangen, beide
-  roepen dezelfde kernfunctie `_custom_account_delete_request()` aan
-  (`custom.account_delete.inc`, nieuw bestand naast `custom.module`):
-  - **Services-resource voor de app**: `POST
-    .../nl/flutterdrup/accountdelete/delete_request.json` (sessie-
-    Cookie + `X-CSRF-Token`-header verplicht — CSRF-token op te halen
-    via `GET/POST .../nl/flutterdrup/user/token.json` met dezelfde
-    sessie-cookie — géén args nodig, lege JSON-body `{}` volstaat).
-    **Live succesvol getest via curl op devbob** (Bob heeft de
-    test-rij daarna zelf weer uit `custom_account_delete_requests`
-    verwijderd om zijn test-account niet na 30 dagen echt te laten
-    verwijderen).
+  "Wachtwoord wijzigen" (zie Bob's beslissing 3 hieronder) — niet
+  meegenomen, eigen vervolgtaak.
+  **"Account verwijderen" volledig afgerond (2026-08-24, Bob + Claude
+  samen).** Bob wil geen volledige in-app-flow bouwen; gekozen aanpak:
+  account direct blokkeren (`status=0`, kan niet meer inloggen) + na
+  30 dagen automatisch hard verwijderen via cron, i.p.v. direct
+  verwijderen. Twee Drupal-ingangen, beide roepen dezelfde kernfunctie
+  `_custom_account_delete_request()` aan (`custom.account_delete.inc`,
+  nieuw bestand naast `custom.module`):
+  - **Services-resource** (`POST
+    .../nl/flutterdrup/accountdelete/delete_request.json`, sessie-
+    Cookie + `X-CSRF-Token`-header verplicht — token op te halen via
+    `.../nl/flutterdrup/user/token.json` met dezelfde sessie-cookie,
+    géén args nodig, lege JSON-body `{}` volstaat). **Resource-naam is
+    `accountdelete`, niet `account`** — die eerste naam botste stil met
+    iets in Services (resource verscheen niet in de Bronnen-lijst, geen
+    foutmelding) tot 'm hernoemd werd. Live succesvol getest via curl
+    op devbob.
   - **Webpagina** `/account-verwijderen` (Drupal `hook_menu()`,
     `confirm_form()`, alleen bereikbaar ingelogd — normale
     Drupal-login, geen app-token nodig, werkt dus ook los van de app)
-    — **nog niet getest**, alleen de Services-route is bevestigd.
+    — **live bevestigd werkend** door Bob.
+  - **FlutterFlow-app-kant**: nieuwe `ListTile` "Account verwijderen"
+    op de Gebruiker-tab (gedupliceerd van de Uitloggen-ListTile, zelfde
+    styling), On Tap → **Launch URL** (actie staat onder categorie
+    **"Share"**, niet "Navigation" — makkelijk te missen) →
+    `https://uitgaanskrant.com/nl/account-verwijderen`. Bevestigd via
+    verse export (`launchURL(...)` correct gegenereerd) + `flutter
+    analyze` + `flutter build apk` (geen nieuwe errors). Gecommit
+    `55b8dd6`. **Dekt Apple's App Store Review Guideline 5.1.1(v)**
+    (in-app-pad naar accountverwijdering, een link-out naar een simpele
+    webpagina volstaat volgens de richtlijn).
   - Cron-sweep (`custom_account_delete_cron()`, via `custom_cronapi()`
     — Ultimate Cron, dagelijks) ruimt na 30 dagen automatisch op —
     **nog niet live getest** (logisch, kost 30 dagen om te
-    reproduceren; code-review is het enige dat hier gebeurd is).
-  - **Resource-naam is `accountdelete`, niet `account`** — die eerste
-    naam botste stil met iets in Services (resource verscheen niet in
-    de Bronnen-lijst, geen foutmelding) tot 'm hernoemd werd; hou hier
-    rekening mee bij het bouwen van de app-knop hieronder.
-  **Nog open:** de FlutterFlow-kant — één knop/ListTile op de
-  Gebruiker-tab, On Tap → Launch URL →
-  `https://uitgaanskrant.com/nl/account-verwijderen` (geen verdere
-  in-app UI nodig, de webpagina regelt de rest). Nog niet gebouwd.
+    reproduceren; code-review + de handmatige call-flow zijn het enige
+    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.
@@ -1596,10 +1599,10 @@ leek overbodige scope-uitbreiding.)*
    view).
 3. "Gebruiker"-tab = het oude P1-7-scope (wachtwoord wijzigen,
    uitloggen, account verwijderen), nu als tab i.p.v. aparte pagina.
-   Account verwijderen heeft mogelijk AVG-implicaties aan Drupal-kant.
-   **Let op prioriteit:** Apple's App Store Review Guideline 5.1.1(v)
-   eist in-app accountverwijdering voor een app met accountaanmaak —
-   zonder dit scherm blokkeert een iOS-submissie, niet alleen P1.
+   **Account verwijderen afgerond 2026-08-24** (zie de uitgewerkte
+   notitie hierboven — blokkeert/vertraagt + cron, geen directe
+   verwijdering, dekt Apple's App Store Review Guideline 5.1.1(v)).
+   Alleen "Wachtwoord wijzigen" resteert nog van deze beslissing.
 
 *(P1-12 afgerond 2026-08-10 avond — Bob, builder, opgelost via een
 andere en betere route dan oorspronkelijk voorgesteld: i.p.v. een