Browse Source

127-E: activiteitenformulier vult zich uit de kloonbron

On Page Load zet zes page states (provincie/plaats/entree/logo/categorieen/
fotos) uit kloonBron, negen TextFields krijgen hun Initial Value uit
kloonTekst, en beide Kopie-knoppen geven gemeenteTid mee zodat
gemeenteVoorselectie de juiste gemeente kiest.

Nog open: Initial Option Value op de vijf dropdowns (alleen zichtbaarheid)
en de logo/foto-preview (page states zijn van het type Image Path).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 4 hours ago
parent
commit
26872b5fd3
1 changed files with 41 additions and 28 deletions
  1. 41 28
      TASKS.md

+ 41 - 28
TASKS.md

@@ -1203,34 +1203,47 @@ selecteert de dropdown wél de juiste waarde maar verstuurt de create-actie leeg
 De page states worden pas bij het indienen gelezen, dus die mogen gewoon in
 De page states worden pas bij het indienen gelezen, dus die mogen gewoon in
 On Page Load — daar speelt het timingprobleem niet.
 On Page Load — daar speelt het timingprobleem niet.
 
 
-#### 127-E · Activiteitenformulier voorvullen · Eigenaar: Claude — bezig (2026-09-22)
-
-24 bindingen. Tien TextFields (`titel`, `omschrijving`, `organisator`, `contact`,
-`adres_straat` → *Adres*, `adres_plaats` → *Plaats*, `adres_postcode`,
-`entree_prijs`, `toelichting_entree`, `website_url`), plus `entree_tid` en
-`categorie_tids` (elk 2), de vier beeld-page-states, en **de cascade** (3 × 2).
-
-**De cascade is precies taak 124.** Beide moeten de drie dropdowns voorvullen uit
-een `keten`-string, met dezelfde drie custom functions. Bouw 124 eerst, of bouw ze
-samen — anders doe je het werk twee keer.
-
-**Hoe de timing hier uitpakt** (gemeten in de export):
-
-- De **gemeente**-dropdown zit achter `if (createProvincieID != null && != '')`
-  (`stadsactiviteit_aanmaken_widget.dart:1852`) en de **plaats**-dropdown achter
-  `if (createGemeenteID ...)` (regel 1991). Die twee **bestaan nog niet** tijdens
-  de eerste build, dus hun `FormFieldController` wordt pas ná On Page Load
-  aangemaakt — daar is het eerste-build-probleem er dus **niet**.
-- Alleen de **provincie**-dropdown staat er meteen. Die ene heeft zijn Initial
-  Option Value uit App State nodig: `ketenProvincie(kloonTekst(kloonBron,'keten'))`.
-- On Page Load moet **alle drie** de page states zetten
-  (`createProvincieID`/`createGemeenteID`/`createPlaatsID`), want een
-  voorgeselecteerde dropdown vuurt geen `onChanged`.
-
-ℹ️ `gemeenteTid` bestaat al als page parameter van deze pagina en heeft voorrang
-in `gemeenteVoorselectie()` — bruikbaar, maar hij zet alleen `createGemeenteID` en
-**niet** `createProvincieID`, dus de gemeente-dropdown blijft dan onzichtbaar. Voor
-een kloon is de App-State-route via `keten` dus de volledige oplossing.
+#### 127-E · Activiteitenformulier voorvullen · Eigenaar: Claude — grotendeels af (2026-09-22)
+
+**Af en geverifieerd in een verse export (0 analyse-fouten):**
+- **On Page Load → Update Page State** (Action 3, ná de bestaande
+  `gemeenteVoorselectie`-conditional) met zes velden:
+  `createProvincieID`→`provincie_tid`, `createPlaatsID`→`plaats_tid`,
+  `createEntreeTid`→`entree_tid`, `createLogoFid`→`logo_fid`,
+  `createCategorieTids`→`categorie_tids` (kloonLijst),
+  `createFotosFids`→`fotos_fids` (kloonLijst).
+- **Initial Value op negen TextFields**: `titel`, `omschrijving`, `adres_straat`,
+  `adres_postcode`, `organisator`, `contact`, `website_url`,
+  `toelichting_entree`, `entree_prijs`. (Datum bewust niet — je kloont juist om
+  een nieuwe datum te kiezen.)
+- **`gemeenteTid`-navigatieparameter** op beide Kopie-knoppen
+  (`MijnAanmeldingen` Action 4 en `mijnProfiel` Action 3), gebonden aan
+  `apiResult… → JSON Body → $.gemeente_tid`. `gemeenteVoorselectie()` geeft die
+  parameter voorrang, dus `createGemeenteID` klopt bij een kloon en de
+  plaats-dropdown wordt zichtbaar.
+
+**De indiening is hiermee compleet**: alle waarden die `stadsactiviteitCreate`
+meekrijgt komen uit de page states, en die zijn nu gezet.
+
+**Nog te doen — alleen nog zichtbaarheid, geen functionaliteit:**
+- **Initial Option Value op vijf dropdowns**, zodat de gebruiker de gekloonde
+  keuze ook *ziet* staan: `DropDownProvincie` (aan **App State**:
+  `kloonTekst(kloonBron,'provincie_tid')` — dit is de enige die al bij de eerste
+  build bestaat, dus niet aan page state hangen), `DropDownGemeente`
+  (`createGemeenteID`), `DropDownPlaats` (`createPlaatsID`), `DropDownEntree`
+  (`createEntreeTid`), `DropDownCategorieen` (`createCategorieTids`).
+  Zonder deze tonen de dropdowns "Selecteer…" terwijl de onderliggende waarde
+  wel goed staat — verwarrend, maar niet fout.
+- ⚠️ **`createFotosUrls` is type `List < Image Path >` en `createLogoUrl` is
+  `Image Path`** — daar is `kloonLijst`/`kloonTekst` (String) niet aan te binden.
+  Zelfde restpunt als op het evenementformulier: de **preview** van logo en
+  foto's ontbreekt bij een kloon, de fids gaan wél mee naar Drupal. Oplossing
+  vraagt om het type van die twee page states om te zetten naar String (en dan
+  de Image-widgets opnieuw binden) — besluit aan Bob.
+
+⚠️ **127-F is nu urgent geworden**: zolang `kloonBron` niet gewist wordt bij
+"nieuw aanmaken", krijgt een verse activiteit het vorige kloonformulier te zien.
+Dat raakt o.a. de knop "+ Activiteit aanmaken" per stadsrecht op `mijnProfiel`.
 
 
 #### 127-F · `kloonBron` wissen · Eigenaar: nader te bepalen
 #### 127-F · `kloonBron` wissen · Eigenaar: nader te bepalen