|
@@ -2699,7 +2699,7 @@ overwegen bij een volgende theme-update:
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-**P2-15 · Eigenaar: Bob (builder), Claude regisseert/verifieert (niet meer actief bezig — sessie 2026-08-31 avond afgesloten na bouwstap 5 stap 1; zie STAND VAN ZAKEN bij bouwstap 5).
|
|
|
|
|
|
|
+**P2-15 · Eigenaar: Claude — bezig (sessie 2026-09-02: bouwt de formulierpagina `uitgaansevenementAanmaken`, bouwstap 5 stap 2-5, door `stadsactiviteitAanmaken` te dupliceren).
|
|
|
Bouwstap 1 afgerond en bevestigd (2026-08-27): custom action
|
|
Bouwstap 1 afgerond en bevestigd (2026-08-27): custom action
|
|
|
`bestandUpload` (`lib/custom_code/actions/bestand_upload.dart`) upload
|
|
`bestandUpload` (`lib/custom_code/actions/bestand_upload.dart`) upload
|
|
|
foto → fid, live getest tegen productie
|
|
foto → fid, live getest tegen productie
|
|
@@ -3424,57 +3424,61 @@ werkte.
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-### STAND VAN ZAKEN bouwstap 5 (2026-08-31 avond) — hier verder
|
|
|
|
|
-
|
|
|
|
|
-**Klaar:** stap 1, de custom action (zie punt 1 hierboven).
|
|
|
|
|
-
|
|
|
|
|
-**Bezig:** stap 2, `evenementCreate` los testen tegen productie. Daarvoor
|
|
|
|
|
-staat op de bestaande wegwerp-testpagina **`kanwegTestUpload`** een
|
|
|
|
|
-**tweede knop "Test evenement"** (sibling van de bestaande "Test
|
|
|
|
|
-Upload"-knop, in dezelfde `Column`). Zijn On Tap heeft één actie:
|
|
|
|
|
-Custom Action `evenementCreate`, met deze waarden al gezet en
|
|
|
|
|
-UI-geverifieerd:
|
|
|
|
|
-
|
|
|
|
|
-| Argument | Waarde |
|
|
|
|
|
-|---|---|
|
|
|
|
|
-| `sessionName` | App State `userSessionname` |
|
|
|
|
|
-| `sessionId` | App State `userSessionid` |
|
|
|
|
|
-| `token` | App State `userToken` |
|
|
|
|
|
-| `titel` | letterlijk `Testevenement Claude` |
|
|
|
|
|
-| `datumStart` | letterlijk `2026-09-15 20:00:00` |
|
|
|
|
|
-| `categorieTids` | Inline Function, expression `<String>[]` |
|
|
|
|
|
-
|
|
|
|
|
-Er is **bewust géén snackbar-actie** toegevoegd: `evenementCreate` print
|
|
|
|
|
-URL, body, status en response al naar de console, dus `adb logcat` is de
|
|
|
|
|
-uitleesroute. (Wil je 'm tijdens het testen tóch zichtbaar op het
|
|
|
|
|
-toestel, voeg dan een Show Snack Bar toe met Action Output → JSON Path
|
|
|
|
|
-`$`, zoals de bestaande upload-knop doet — dan is een Action Output
|
|
|
|
|
-Variable Name nodig, die staat nu niet ingesteld.)
|
|
|
|
|
-
|
|
|
|
|
-**Nog te doen om stap 2 af te maken:**
|
|
|
|
|
-
|
|
|
|
|
-1. **`fotosFids` zetten — DIT DEBLOKKEERT DE EXPORT.** Pagina
|
|
|
|
|
- `kanwegTestUpload` → knop "Test evenement" → Actions → argument
|
|
|
|
|
- `fotosFids` → potlood naast Value → **Inline Function** → Expression
|
|
|
|
|
- `<String>[]` → Check Errors → Confirm. *(Claude kon dit veld niet
|
|
|
|
|
- zelf bereiken: het rechterpaneel scrollt niet en zelfs met alle 15
|
|
|
|
|
- argumenten erboven ingeklapt blijft het waardeveld ~40px onder de
|
|
|
|
|
- viewportrand. In Bob's eigen browser staat het gewoon in beeld.)*
|
|
|
|
|
-2. **`horecagelegenheidNid` invullen** met het nid van een
|
|
|
|
|
- horecagelegenheid op Bob's eigen account (op te zoeken via
|
|
|
|
|
- `mijn_horecagelegenheden` of in de app op Mijn profiel). Verplicht
|
|
|
|
|
- argument, staat nu op Unset.
|
|
|
|
|
-3. **Verse export + `dart analyze`** ter controle (moet weer slagen).
|
|
|
|
|
-4. **Live testen:** app draaien op `emulator-5554`, eerst `adb logcat -c`,
|
|
|
|
|
- dan de knop "Test evenement" indrukken en de `EVENEMENT CREATE`-blokken
|
|
|
|
|
- (URL/BODY/STATUS/response) uit `logcat` lezen. Verwacht:
|
|
|
|
|
- `{"status": "created", "nid": "..."}` en een **direct gepubliceerde**
|
|
|
|
|
- node op productie — daarna die testnode weer opruimen in Drupal.
|
|
|
|
|
-5. **Testknop opruimen** zodra stap 2 groen is (de knop verwijderen,
|
|
|
|
|
- `kanwegTestUpload` zelf blijft staan als herbruikbare testtool).
|
|
|
|
|
-
|
|
|
|
|
-**Daarna pas** aan de formulierpagina beginnen (punt 2 t/m 5 van "Wat
|
|
|
|
|
-nieuw gebouwd moet worden" hierboven).
|
|
|
|
|
|
|
+### STAND VAN ZAKEN bouwstap 5 (2026-09-02) — hier verder
|
|
|
|
|
+
|
|
|
|
|
+**Gedaan (Claude, 2026-09-02):** de pagina **`uitgaansevenementAanmaken`**
|
|
|
|
|
+bestaat, route `/uitgaansevenementAanmaken`. Gemaakt door
|
|
|
|
|
+`stadsactiviteitAanmaken` te dupliceren (rechtsklik → Duplicate Page →
|
|
|
|
|
+Rename Page) en daarna op te schonen:
|
|
|
|
|
+- **Verwijderd:** het complete blok "Waar" (Mijn-gemeenten-picker, de
|
|
|
|
|
+ provincie/gemeente/plaats-cascade, adres, postcode, plaats) én de
|
|
|
|
|
+ velden **Organisator** en **Contact**.
|
|
|
|
|
+- **Behouden:** Titel, Omschrijving, categorie-multiselect, beide
|
|
|
|
|
+ datumvelden mét hun picker-logica, Website-URL, entree-dropdown,
|
|
|
|
|
+ toelichting entree, entreeprijs, logo-upload, foto's-upload,
|
|
|
|
|
+ verzendknop. (Dat zijn precies de dure onderdelen — niet opnieuw
|
|
|
|
|
+ bouwen.)
|
|
|
|
|
+
|
|
|
|
|
+**⚠️ EERST DOEN — de export is hierdoor GEBLOKKEERD (raakt ook andere
|
|
|
|
|
+sessies).** `Duplicate Page` kopieert de Upload-Data-actienamen mee, en
|
|
|
|
|
+die moeten **projectbreed uniek** zijn. Het Issues-paneel meldt
|
|
|
|
|
+`Name for Upload Data action on ButtonFotos is not unique`.
|
|
|
|
|
+**Fix (10 seconden in Bob's browser):** pagina
|
|
|
|
|
+`uitgaansevenementAanmaken` → widget **`ButtonFotos`** → Actions-tab →
|
|
|
|
|
+"On Tap · 4 actions" → **Action 1 "Store media for upload"** → helemaal
|
|
|
|
|
+onderaan het rechterpaneel het veld **`Name`** → maak hem uniek, bv.
|
|
|
|
|
+`UploadDataFotosEvenement`.
|
|
|
|
|
+*(`ButtonLogo` is al gedaan: die staat nu op `UploadDataLogoEvenement`
|
|
|
|
|
+en zijn actieflow toont een groen vinkje.)*
|
|
|
|
|
+**Tip:** het `Name`-veld valt buiten beeld zolang de Action Flow Editor
|
|
|
|
|
+zijn linkerkolom toont — klik het **"|<"-icoontje linksboven** in die
|
|
|
|
|
+editor om die kolom in te klappen, dan staat het veld gewoon in beeld.
|
|
|
|
|
+*(Claude kreeg `ButtonFotos` na 4 pogingen niet geselecteerd — bekende
|
|
|
|
|
+widget-tree-klik-offset, zie `CLAUDE.md`. In Bob's eigen browser is dat
|
|
|
|
|
+één klik.)*
|
|
|
|
|
+Check daarna het Issues-paneel: er kunnen nog meer losse referenties
|
|
|
|
|
+staan van de verwijderde velden (Organisator/Contact) in de
|
|
|
|
|
+verzendactie.
|
|
|
|
|
+
|
|
|
|
|
+**Daarna nog te bouwen op deze pagina:**
|
|
|
|
|
+1. **Horecagelegenheid-dropdown** — Backend Query
|
|
|
|
|
+ `MijnHorecagelegenheden` (variabelen `session_name`/`sessid` → App
|
|
|
|
|
+ State `userSessionname`/`userSessionid`), optie-label `$.titel`,
|
|
|
|
|
+ waarde `$.nid`, auto-select bij precies 1 resultaat.
|
|
|
|
|
+2. **Tickets-URL-veld** — dupliceer `TextFieldWebsiteURL` (Ctrl+D) en
|
|
|
|
|
+ pas label/hint aan; scheelt alle styling.
|
|
|
|
|
+3. **Page State opschonen/aanvullen:** `createProvincieID`,
|
|
|
|
|
+ `createGemeenteID` en `createPlaatsID` kunnen weg; er moet een
|
|
|
|
|
+ `createHorecagelegenheidNid` (String) bij.
|
|
|
|
|
+4. **Verzendknop `ButtonIndienen`** omzetten van `stadsactiviteitCreate`
|
|
|
|
|
+ naar **`evenementCreate`** (16 argumenten, zie het API-contract
|
|
|
|
|
+ hierboven). Let op de les uit restpunt 7: geen non-null assertion op
|
|
|
|
|
+ een Page State-veld — schakel de knop uit zolang
|
|
|
|
|
+ horecagelegenheid/titel/datum leeg zijn.
|
|
|
|
|
+5. **Page parameter `horecagelegenheid_nid`** (optioneel) zodat
|
|
|
|
|
+ `mijnProfiel`'s "+ Voeg toe" 'm vooringevuld kan meegeven.
|
|
|
|
|
+6. Succesmelding moet **"geplaatst"** zeggen, niet "wordt beoordeeld" —
|
|
|
|
|
+ evenementen komen direct gepubliceerd binnen.
|
|
|
|
|
|
|
|
**Nieuwe FlutterFlow-valkuil, gevonden tijdens deze stap (geldt straks
|
|
**Nieuwe FlutterFlow-valkuil, gevonden tijdens deze stap (geldt straks
|
|
|
óók voor de formulierpagina):** een **List-typed custom-action-argument
|
|
óók voor de formulierpagina):** een **List-typed custom-action-argument
|