|
@@ -1137,15 +1137,12 @@ gelegenheden mét evenementen was élk bezorgveld leeg — dat waren
|
|
|
poppodia en cafés, dus geen representatieve steekproef, maar het maakt
|
|
poppodia en cafés, dus geen representatieve steekproef, maar het maakt
|
|
|
wel de vraag scherp of dit een handvol zaken betreft of honderden.
|
|
wel de vraag scherp of dit een handvol zaken betreft of honderden.
|
|
|
|
|
|
|
|
-**P1-6 restpunt (2026-09-04):** de drie Bezorgen-tab-velden van Minor-2
|
|
|
|
|
|
|
+*(P1-6 restpunt vervallen 2026-09-04 — Bob. De drie Bezorgen-tab-velden
|
|
|
kregen bij het binden automatisch een Default Variable Value met de
|
|
kregen bij het binden automatisch een Default Variable Value met de
|
|
|
-**veldnaam** erin — `valueOrDefault<String>(..., 'afhaalopties')`,
|
|
|
|
|
-`'betaalopties'` en `'bezorgdin'` (die laatste nog met een d, terwijl het
|
|
|
|
|
-veld `bezorgtin` heet). De `!= null`-guard ervoor vangt het normale geval
|
|
|
|
|
-af, dus dit slaat alleen toe bij een lege array `[]` i.p.v. `null` — in
|
|
|
|
|
-een steekproef van 59 zaken nooit voorgekomen. Cosmetisch, laag risico:
|
|
|
|
|
-Default Variable Value leegmaken op die drie widgets in
|
|
|
|
|
-`horecagelegenheid_current_widget.dart` (regels ~1164, ~1384, ~1423).
|
|
|
|
|
|
|
+veldnaam erin (`valueOrDefault<String>(..., 'afhaalopties')` e.d.), maar
|
|
|
|
|
+het veld is in de builder niet leeg te maken én de tekst bereikt de
|
|
|
|
|
+gebruiker nooit: de `!= null`-conditie ervoor blokkeert de widget al bij
|
|
|
|
|
+lege data. Geen actie nodig.)*
|
|
|
|
|
|
|
|
*(P1-6 grotendeels afgerond 2026-08-16 t/m 2026-08-18 — letterlijke
|
|
*(P1-6 grotendeels afgerond 2026-08-16 t/m 2026-08-18 — letterlijke
|
|
|
veldnaam i.p.v. nette placeholder bij ontbrekende data
|
|
veldnaam i.p.v. nette placeholder bij ontbrekende data
|
|
@@ -2289,6 +2286,48 @@ gedaan, zie het kader hieronder; stappen 3/4/6 staan nog open).
|
|
|
> dus bevestigd "lukt Claude niet via automation", **niet** bewezen "kan
|
|
> dus bevestigd "lukt Claude niet via automation", **niet** bewezen "kan
|
|
|
> in FlutterFlow niet". In Bob's eigen browser is het het proberen waard.
|
|
> in FlutterFlow niet". In Bob's eigen browser is het het proberen waard.
|
|
|
>
|
|
>
|
|
|
|
|
+> **VERVOLG DEZELFDE SESSIE — er is een werkend pad gevonden, herbouwen
|
|
|
|
|
+> is NIET nodig.** Nadat Bob bevestigde dat de ConditionalBuilder-tabs
|
|
|
|
|
+> ook in zijn eigen browser weigeren, zijn er nog drie dingen getest op
|
|
|
|
|
+> dezelfde kopie:
|
|
|
|
|
+> 1. **`Wrap Widget` → `Column` op de `ConditionalBuilder`: geweigerd**
|
|
|
|
|
+> met "Invalid Action ... we've undone it for you". Die route is dus
|
|
|
|
|
+> dicht, net als insertie in de If-tak.
|
|
|
|
|
+> 2. **Insertie in de ROOT-`Column` van de pagina (die de `Container`
|
|
|
|
|
+> met de `TabBar` bevat): WERKT.** Een widget landt daar netjes als
|
|
|
|
|
+> tweede kind, en de export bevestigt het: `Scaffold > Column > [
|
|
|
|
|
+> Container(TabBar), <nieuw widget> ]`, alle 6 tabs en 6
|
|
|
|
|
+> kaartbindingen intact, **0 verwijderde regels** in de diff. Insert
|
|
|
|
|
+> Widget voegt achteraan toe; naar bóven de TabBar krijg je 'm door de
|
|
|
|
|
+> node in de tree op de `Column`-rij te droppen (drop = positie 0).
|
|
|
|
|
+> 3. **Een eigenschap wijzigen ván een widget bínnen een
|
|
|
|
|
+> ConditionalBuilder-tab: WERKT.** `Main Axis Spacing` van de
|
|
|
|
|
+> `StaggeredView` in tab 1 (Cultuur) van 12 naar 13 gezet;
|
|
|
|
|
+> exportgeverifieerd (`mainAxisSpacing: 13.0` op alleen die ene, de
|
|
|
|
|
+> andere vijf nog 12). De blokkade geldt dus **uitsluitend voor het
|
|
|
|
|
+> toevoegen/herstructureren van widgets** in zo'n tak, niet voor
|
|
|
|
|
+> bindings, waarden of acties.
|
|
|
|
|
+>
|
|
|
|
|
+> **Gevolg voor het bouwplan:** stap 3 hoort niet per tab maar als
|
|
|
|
|
+> **één zoekveld (+ categoriefilter) in de root-`Column` boven de
|
|
|
|
|
+> `TabBar`** — precies wat de oorspronkelijke stap 3 hierboven al
|
|
|
|
|
+> voorschreef ("Eén TextField boven de TabBar die de op dat moment
|
|
|
|
|
+> actieve tab filtert"). Stap 4 en 6 zijn puur binding-werk op de
|
|
|
|
|
+> bestaande `StaggeredView`s en zijn dus gewoon uitvoerbaar. De
|
|
|
|
|
+> 6x `zoektermXxx`/`categorieFilterXxx`-page-state is daarmee
|
|
|
|
|
+> overgedimensioneerd: met één gedeeld veld is één set genoeg, de rest
|
|
|
|
|
+> kan blijven staan en ongebruikt blijven.
|
|
|
|
|
+>
|
|
|
|
|
+> **Nog niet geverifieerd:** dat de root-`Column`-insertie ook op de
|
|
|
|
|
+> **live** pagina lukt. De kopie erfde de ConditionalBuilder-blokkade,
|
|
|
|
|
+> dus ze gedragen zich vermoedelijk hetzelfde — maar test het daar
|
|
|
|
|
+> opnieuw vóór je op het goede pad vertrouwt.
|
|
|
|
|
+>
|
|
|
|
|
+> **Sporen van de test op de kopie** (blijven staan, Claude verwijdert
|
|
|
|
|
+> niets): een losse `TextField` onderaan tab 0, een `Text` "Hello World"
|
|
|
|
|
+> onderaan de root-`Column`, en `mainAxisSpacing: 13` i.p.v. 12 op de
|
|
|
|
|
+> `StaggeredView` van tab 1.
|
|
|
|
|
+
|
|
|
> **Praktisch gevolg voor stap 3/4/6:** op deze pagina is **alleen tab 0
|
|
> **Praktisch gevolg voor stap 3/4/6:** op deze pagina is **alleen tab 0
|
|
|
> een kale `Column`**; tabs 1 t/m 5 zitten allemaal in een
|
|
> een kale `Column`**; tabs 1 t/m 5 zitten allemaal in een
|
|
|
> `ConditionalBuilder`. Claude kan het zoekveld dus wel op tab 0
|
|
> `ConditionalBuilder`. Claude kan het zoekveld dus wel op tab 0
|
|
@@ -3831,15 +3870,19 @@ laten alleen de eerste landen.
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-**P2-16 · Eigenaar: Bob** (klein). Tabnamen gelijktrekken met de site.
|
|
|
|
|
-Home: app heeft Uitgaan/Activiteiten/Cultuur/Films/Jeugd, site heeft
|
|
|
|
|
-Uitgaan/Stadsactiviteiten/Cultuur&Info → "Activiteiten" wordt
|
|
|
|
|
-"Stadsactiviteiten", "Cultuur" wordt "Cultuur&Info" (Films en Jeugd
|
|
|
|
|
-mogen blijven; de app mag fijnmaziger zijn, zolang gedeelde namen
|
|
|
|
|
-kloppen). Gelegenheiddetail: app heeft Info/Links/Bezorgen, site heeft
|
|
|
|
|
-Info/Opening/Map → openingstijden en kaart terug als eigen tab, "Links"
|
|
|
|
|
-onder Info. Let op: `evenement_horecagelegenheid` noemt dezelfde tab al
|
|
|
|
|
-wél "Openingstijden" — die twee schermen spreken elkaar nu tegen.
|
|
|
|
|
|
|
+*(P2-16 afgerond 2026-09-04 — Bob, builder. Home-tab "Cultuur" heet nu
|
|
|
|
|
+**"Cultuur & Info"**, gelijk aan de site. **Bewuste afwijking van het
|
|
|
|
|
+oorspronkelijke voorstel:** "Activiteiten" wordt **niet** hernoemd naar
|
|
|
|
|
+"Stadsactiviteiten" — Bob houdt het op Activiteiten. Films en Jeugd
|
|
|
|
|
+blijven ook ongewijzigd; de app mag fijnmaziger zijn dan de site.
|
|
|
|
|
+De tweede helft (gelegenheiddetail `Info/Links/Bezorgen` tegenover de
|
|
|
|
|
+site's `Info/Opening/Map`) is niet opgepakt en staat hieronder los.)*
|
|
|
|
|
+
|
|
|
|
|
+**P2-16b · Eigenaar: Bob** (rest van P2-16). Op de gelegenheiddetail
|
|
|
|
|
+heeft de app `Info / Links / Bezorgen`, de site `Info / Opening / Map`.
|
|
|
|
|
+Openingstijden en kaart verdienen een eigen tab, Links kan onder Info.
|
|
|
|
|
+Let op: `evenement_horecagelegenheid` noemt dezelfde tab al wél
|
|
|
|
|
+"Openingstijden" — die twee schermen spreken elkaar nu tegen.
|
|
|
|
|
|
|
|
**P2-22 · Eigenaar: Bob (P2-15-werk; blokkeert de export NIET).**
|
|
**P2-22 · Eigenaar: Bob (P2-15-werk; blokkeert de export NIET).**
|
|
|
Vier openstaande fouten in het Issues-paneel, stand 2026-09-03. Geen
|
|
Vier openstaande fouten in het Issues-paneel, stand 2026-09-03. Geen
|
|
@@ -3906,28 +3949,26 @@ vervallen: Bob heeft `stadsactiviteitAanmakenCopy` en
|
|
|
compilefouten uit het oude P2-23 verdwenen — die taak is geschrapt.)*
|
|
compilefouten uit het oude P2-23 verdwenen — die taak is geschrapt.)*
|
|
|
|
|
|
|
|
|
|
|
|
|
-**P2-18 · Eigenaar: Claude** (mechanisch, klein). Menu-iconen
|
|
|
|
|
-gelijktrekken tussen het Gemeente- en het Provincie-blok in
|
|
|
|
|
-`drawer_component_widget.dart`. **Geïnventariseerd 2026-09-04 — het zijn
|
|
|
|
|
-3 verschillen, niet 2:**
|
|
|
|
|
-
|
|
|
|
|
-| Categorie | Gemeente-blok | Provincie-blok |
|
|
|
|
|
-|---|---|---|
|
|
|
|
|
-| Uitgaan | `music_note_outlined` | `music_note_outlined` ✅ |
|
|
|
|
|
-| Activiteiten | `flagCheckered` | `sports_score` ❌ |
|
|
|
|
|
-| Cultuur | `article_sharp` | **`piedPiperAlt`** ❌ |
|
|
|
|
|
-| Films | `movie_outlined` | `movie_outlined` ✅ |
|
|
|
|
|
-| Jeugd | `emoji_people` | `child` ❌ |
|
|
|
|
|
-| Horeca | `restaurant_sharp` | `restaurant_sharp` ✅ |
|
|
|
|
|
-
|
|
|
|
|
-`Icons.piedPiperAlt` is het Pied Piper-logo (FontAwesome, uit de serie
|
|
|
|
|
-Silicon Valley) — dat is los van consistentie gewoon fout en het meest
|
|
|
|
|
-urgente van de drie. Merk op dat `flagCheckered`, `piedPiperAlt` en
|
|
|
|
|
-`child` FontAwesome-namen zijn, de rest Material.
|
|
|
|
|
-
|
|
|
|
|
-**Stond eerder geparkeerd tot na P0-11** ("vervalt grotendeels als de
|
|
|
|
|
-twee lijsten samengevoegd worden") — die samenvoeging is 2026-09-04 door
|
|
|
|
|
-Bob afgewezen, dus deze taak blijft volledig staan.
|
|
|
|
|
|
|
+**P2-18 · Eigenaar: Bob — grotendeels afgehandeld 2026-09-04, 2 punten
|
|
|
|
|
+open (Bob: "zo houd ik het" — alleen oppakken als hij erop terugkomt).**
|
|
|
|
|
+Menu-iconen in `drawer_component_widget.dart`, Gemeente- tegenover
|
|
|
|
|
+Provincie-blok. Stand na Bob's ronde, geverifieerd via verse export:
|
|
|
|
|
+
|
|
|
|
|
+| Categorie | Gemeente | Provincie | |
|
|
|
|
|
+|---|---|---|---|
|
|
|
|
|
+| Uitgaan | `music_note_outlined` | `music_note_outlined` | ✅ |
|
|
|
|
|
+| Activiteiten | `flagCheckered` | `sports_score` | ❌ nog verschillend |
|
|
|
|
|
+| Cultuur | `piedPiperAlt` | `piedPiperAlt` | ⚠️ gelijk, maar zie hieronder |
|
|
|
|
|
+| Films | `movie_outlined` | `movie_outlined` | ✅ |
|
|
|
|
|
+| Jeugd | `emoji_people` | `emoji_people` | ✅ |
|
|
|
|
|
+| Horeca | `restaurant_sharp` | `restaurant_sharp` | ✅ |
|
|
|
|
|
+
|
|
|
|
|
+⚠️ **Bij Cultuur heeft de verkeerde kant gewonnen:** `article_sharp`
|
|
|
|
|
+(krant) is vervangen door **`piedPiperAlt`**, het bedrijfslogo van Pied
|
|
|
|
|
+Piper uit de HBO-serie *Silicon Valley* (een FontAwesome-merkicoon). Dat
|
|
|
|
|
+staat nu dus op **beide** plekken in plaats van nergens. Terugzetten is
|
|
|
|
|
+één swatch: `article_sharp` past bij "Cultuur & Info" én bij het
|
|
|
|
|
+krantenmerk. Bob is hierop gewezen en houdt het voorlopig zo.
|
|
|
|
|
|
|
|
**P2-19 · Eigenaar: Bob.** `nav.dart`:129 stuurt een ingelogde
|
|
**P2-19 · Eigenaar: Bob.** `nav.dart`:129 stuurt een ingelogde
|
|
|
gebruiker naar het provincie/gemeente-keuzescherm en een uitgelogde
|
|
gebruiker naar het provincie/gemeente-keuzescherm en een uitgelogde
|