Bläddra i källkod

P2-15: vier restpunten op uitgaansevenementAanmaken afgewerkt in de builder

Invoervelden van wit-op-wit naar primaryBackground (11 widgets), vier
"activiteit"-teksten omgezet naar "evenement", foutmelding van de
foto-upload naar de juiste action output, en mijnProfiel's redactierechten-
knop navigeert nu naar stadsactiviteitAanmaken i.p.v. een placeholder.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 3 dagar sedan
förälder
incheckning
9f6e790
1 ändrade filer med 47 tillägg och 37 borttagningar
  1. 47 37
      TASKS.md

+ 47 - 37
TASKS.md

@@ -4204,8 +4204,8 @@ overwegen bij een volgende theme-update:
 
 ---
 
-**P2-15 · Eigenaar: Claude — bezig (sessie 2026-09-11, restpunten 1-3 in de
-builder) — bouwstappen 1 t/m 5 zijn AF; alleen de live
+**P2-15 · Eigenaar: Onbepaald — bouwstappen 1 t/m 5 zijn AF, en de vier
+restpunten uit de exportcontrole van 2026-09-11 zijn afgewerkt; alleen de live
 test rest.** (Claim vrijgegeven na sessie 2026-09-03b.) Wat er nog moet: één
 doorloop op een toestel — inloggen als horeca-eigenaar, `mijnProfiel` openen,
 via "+ Voeg toe" naar `uitgaansevenementAanmaken`, controleren dat de
@@ -4215,42 +4215,52 @@ geplaatst." en de node terugvinden op uitgaanskrant.com. Doe dat met
 `fvm flutter run --profile -d <device>` (zie CLAUDE.md), niet met een
 debug-build.
 
-⚠️ **Vier restpunten gevonden bij een exportcontrole op 2026-09-11** (verse
-export, `uitgaansevenement_aanmaken_widget.dart`). Functioneel is de pagina
-compleet — alle 16 `evenementCreate`-argumenten zijn gebonden, de export
-loopt schoon, de max-5-fotoguard staat er, `horecaVoorselectie` verwerkt de
-lege `serializeParam('', ...)` uit `mijnProfiel` netjes — maar dit staat er
-nog:
-1. **De invoervelden zijn onzichtbaar: wit op wit.** Alle **11** `fillColor`s
-   staan op `secondaryBackground`, net als de vier omhullende kaart-Containers
-   ("Wat", "Wanneer", "Organisatie", "Media" — regels 199/904/1495/1806). Dit
-   is precies de default-valkuil uit `CLAUDE.md`, die deze pagina al
-   voorspelde. `stadsactiviteitAanmaken` is hier al doorheen: daar staan 15×
-   `primaryBackground`. Fix: per widget Fill Color → `primaryBackground`.
-2. **Vier teksten zeggen nog "activiteit"** (overgebleven uit de duplicatie):
-   de verzendknop **"Activiteit indienen"** (sleutel `9qx16tm9`) en de hints
-   "Titel activiteit", "Omschrijving activiteit", "Website van de activiteit".
-3. **Foutmelding-bug in de foto-upload.** De FALSE-tak van de fotoknop leest
+✅ **De vier restpunten uit de exportcontrole van 2026-09-11 zijn afgewerkt**
+(Claude, zelf in de builder; elk punt met een verse export geverifieerd, en
+`dart analyze` op die export geeft 0 errors):
+1. **Invoervelden waren wit op wit** — alle **11** `fillColor`s (8 tekstvelden +
+   3 dropdowns) stonden op `secondaryBackground`, net als de vier omhullende
+   kaart-Containers, waardoor je alleen zwevende labeltekst zag. Alle 11 staan
+   nu op **`primaryBackground`**, gelijk aan `stadsactiviteitAanmaken`.
+2. **Vier teksten zeiden nog "activiteit"** (restant van de duplicatie): de
+   verzendknop heet nu **"Evenement indienen"**, en de hints zijn
+   "Titel evenement", "Omschrijving evenement" en "Website van het evenement".
+3. **Foutmelding-bug in de foto-upload** — de FALSE-tak las
    `logoevenementuploadResult` → `$.error` in plaats van
-   `fotoEvenementuploadResult` (±regel 2585). Mislukt een foto-upload, dan
-   toont de snackbar de fout van de *logo*-upload — of "null" als er nog geen
-   logo geüpload was. Zelfde actie, argument omzetten naar de juiste output.
-4. **`mijnProfiel`'s tweede "+ Voeg toe"-knop** (bij "Mijn redactierechten",
-   sleutel `h3caw9re`) toont nog de placeholder-snackbar *"Binnenkort
-   beschikbaar: evenement aanmaken"*. Die tekst klopt sowieso niet
-   (redactierechten → stadsactiviteit, niet evenement), en
-   `stadsactiviteitAanmaken` is op dit moment alléén bereikbaar vanuit de
-   Favorieten-pagina. De horeca-knop erbóven navigeert wél correct.
-
-*Uitgesloten bij diezelfde controle, niet nog eens onderzoeken:* de
-ontbrekende guard op titel/datum is geen crashrisico — `datumVoorApi` geeft
-nooit `null` terug (bij leeg een `''`), dus de `!` in de knop is veilig, en
-`evenementCreate` vangt lege titel/datum zelf af met een nette melding. De
-knop is dus hooguit cosmetisch te vroeg klikbaar. Ook: `bestandUpload` plakt
-de API-base zelf voor het relatieve pad, dus dat is correct bedraad. En
-P2-22's twee `Custom Action Call`-fouten op `categorieTids`/`fotosFids` lijken
-opgelost — beide staan als `.toList()` in de export en de export blokkeert
-niet meer.
+   `fotoEvenementuploadResult`, dus bij een mislukte foto-upload verscheen de
+   fout van de *logo*-upload (of "null"). Nu correct gebonden.
+4. **`mijnProfiel`'s tweede "+ Voeg toe"** (bij "Mijn redactierechten") toonde
+   nog de placeholder "Binnenkort beschikbaar: evenement aanmaken" — die tekst
+   klopte ook niet (redactierechten → stadsactiviteit). De knop navigeert nu
+   naar **`stadsactiviteitAanmaken`** (`context.pushNamed`, geen parameters);
+   die pagina was daarvóór alleen vanuit Favorieten bereikbaar. Besluit Bob,
+   2026-09-11.
+
+*Uitgesloten bij diezelfde controle, niet nog eens onderzoeken:* de ontbrekende
+guard op titel/datum is geen crashrisico — `datumVoorApi` geeft nooit `null`
+terug (bij leeg een `''`), dus de `!` in de knop is veilig, en `evenementCreate`
+vangt lege titel/datum zelf af met een nette melding. De knop is dus hooguit
+cosmetisch te vroeg klikbaar. Ook: `bestandUpload` plakt de API-base zelf voor
+het relatieve pad, dus dat is correct bedraad. En P2-22's twee
+`Custom Action Call`-fouten op `categorieTids`/`fotosFids` zijn opgelost —
+beide staan als `.toList()` in de export en de export blokkeert niet meer.
+
+**Visueel nagelegd op de telefoon-emulator (411 dp, profile-build, route
+`/uitgaansevenementAanmaken`, 2026-09-11):** de invoervelden zijn nu
+daadwerkelijk zichtbaar als grijze vakken, de horeca-dropdown selecteerde
+zichzelf voor op "Café de Vriendschap" (dus `horecaVoorselectie` + de
+On-Page-Load-keten werken op een echt toestel), en de verzendknop stond
+zichtbaar onderaan met de tekst "Evenement indienen". Dat dekt het grootste
+deel van de live test hierboven af; wat nog écht rest is **één evenement
+daadwerkelijk indienen** en de node terugvinden op uitgaanskrant.com.
+
+*Twee cosmetische punten die daarbij opvielen — losse, lage prioriteit, geen
+van beide een regressie van dit werk:*
+- **De drie dropdowns zijn ~57% van de schermbreedte terwijl de tekstvelden
+  vol-breed zijn.** Oogt rommelig in een formulier. Fix: `Width` op de
+  dropdowns op `double.infinity` (het ∞-knopje in het Width-veld).
+- **Sectiekoppen zijn inconsistent uitgelijnd:** "Wat", "Wanneer" en
+  "Organisatie" staan gecentreerd, "Entree" en "Media" links.
 Bouwstap 1 afgerond en bevestigd (2026-08-27): custom action
 `bestandUpload` (`lib/custom_code/actions/bestand_upload.dart`) upload
 foto → fid, live getest tegen productie