|
@@ -43,12 +43,11 @@ Wat er nog ligt, allemaal in dezelfde views:
|
|
|
"Toevoegen favoriet") de reden erbij die de site wél geeft: dat je die
|
|
"Toevoegen favoriet") de reden erbij die de site wél geeft: dat je die
|
|
|
gemeente donderdags in de agendamail krijgt. Nu is "gemeente volgen"
|
|
gemeente donderdags in de agendamail krijgt. Nu is "gemeente volgen"
|
|
|
een knop zonder zichtbaar nut. Engelse vertaling niet vergeten.
|
|
een knop zonder zichtbaar nut. Engelse vertaling niet vergeten.
|
|
|
-- **P0-13 (nieuw, 2026-09-08) · Eigenaar: Bob — wacht op één
|
|
|
|
|
- ontwerpbesluit** — **de favorieten-hartjes hadden geen login-guard**,
|
|
|
|
|
- waardoor een uitgelogde gebruiker een hartje kan aanzetten dat de
|
|
|
|
|
- server nooit ontvangt. **Het gemeente-hartje is 2026-09-08 gefixt en
|
|
|
|
|
- via export geverifieerd.** De twee horeca-hartjes wachten op Bob's
|
|
|
|
|
- keuze tussen "verbergen" en "naar Login sturen". Zie de taak zelf.
|
|
|
|
|
|
|
+- ~~**P0-13** — favorieten-hartjes zonder login-guard.~~ **AFGEROND
|
|
|
|
|
+ 2026-09-09.** Gemeente-hartje en horeca-detailpagina hebben nu een
|
|
|
|
|
+ `userSessionid`-guard; het hartje op de horeca-overzichtskaart is op
|
|
|
|
|
+ Bob's beslissing volledig verwijderd (favorieten alleen nog op de
|
|
|
|
|
+ establishment-pagina zelf).
|
|
|
- **P1-17** — nog 46 velden, en alleen nog in `stadsactiviteitAanmaken`
|
|
- **P1-17** — nog 46 velden, en alleen nog in `stadsactiviteitAanmaken`
|
|
|
(27) en `uitgaansevenementAanmaken` (19): de twee aanmaak-formulieren
|
|
(27) en `uitgaansevenementAanmaken` (19): de twee aanmaak-formulieren
|
|
|
die alleen een stadseditor ziet. De hele publieksgerichte UI
|
|
die alleen een stadseditor ziet. De hele publieksgerichte UI
|
|
@@ -1089,8 +1088,7 @@ taakomschrijving stonden:**
|
|
|
`flag.json`-POST met een lege `entity_id` en lege sessiewaarden.
|
|
`flag.json`-POST met een lege `entity_id` en lege sessiewaarden.
|
|
|
Nog niet live nagespeeld, dus niet bevestigd wat de server dan doet.
|
|
Nog niet live nagespeeld, dus niet bevestigd wat de server dan doet.
|
|
|
|
|
|
|
|
-**P0-13 · Eigenaar: Bob — nog één ontwerpbesluit (gemeente-hartje al
|
|
|
|
|
-gefixt door Claude, sessie 71, 2026-09-08).
|
|
|
|
|
|
|
+**P0-13 · AFGEROND 2026-09-09 (Claude + Bob, sessie 71).
|
|
|
Favorieten-hartje werkt "gewoon" als je uitgelogd bent, maar de server
|
|
Favorieten-hartje werkt "gewoon" als je uitgelogd bent, maar de server
|
|
|
krijgt niets — de app liegt dan tegen de gebruiker.**
|
|
krijgt niets — de app liegt dan tegen de gebruiker.**
|
|
|
|
|
|
|
@@ -1143,12 +1141,19 @@ echte gat is uitsluitend het uitgelogde geval.
|
|
|
`if (FFAppState().userSessionid != null && FFAppState().userSessionid != '')`
|
|
`if (FFAppState().userSessionid != null && FFAppState().userSessionid != '')`
|
|
|
direct vóór de `Row`. Een diff tegen de vorige export toont exact
|
|
direct vóór de `Row`. Een diff tegen de vorige export toont exact
|
|
|
één gewijzigd bestand, dus er is niets anders meegekomen.
|
|
één gewijzigd bestand, dus er is niets anders meegekomen.
|
|
|
-2. De twee horeca-hartjes zijn **een ontwerpbesluit voor Bob**, geen
|
|
|
|
|
- mechanische herhaling: die zitten midden in de hoofd-UI (elke
|
|
|
|
|
- overzichtskaart), dus "verbergen als uitgelogd" verandert het beeld
|
|
|
|
|
- van de belangrijkste lijst in de app. Alternatief is het hartje laten
|
|
|
|
|
- staan en bij een tik naar Login navigeren — betere UX, maar meer werk
|
|
|
|
|
- (actieketen met een conditional). **Niet aangeraakt tot Bob kiest.**
|
|
|
|
|
|
|
+2. ~~De twee horeca-hartjes zijn een ontwerpbesluit voor Bob.~~
|
|
|
|
|
+ **BESLIST EN AFGEROND 2026-09-08/09.** Bob's keuze: *"die horeca-hartjes
|
|
|
|
|
+ moeten niet op overzichtspagina's. Die favorieten alleen op de pagina van
|
|
|
|
|
+ de establishment zelf, anders wordt het te rommelig."* Dus:
|
|
|
|
|
+ - **`HorecagelegenheidoverzichtKaart`** — hartje volledig verwijderd
|
|
|
|
|
+ (Bob, builder). Geverifieerd: 0 verwijzingen naar `favorieteHorecaNids`
|
|
|
|
|
+ of `flag.json` in dat bestand.
|
|
|
|
|
+ - **`horecagelegenheidCurrent`** — hartje blijft, maar met login-guard
|
|
|
|
|
+ (Claude, builder). Verse export toont
|
|
|
|
|
+ `if (FFAppState().userSessionid != null && FFAppState().userSessionid != '')`
|
|
|
|
|
+ rond de `Align` > `AlignedTooltip` op regel ~336. `dart analyze` 0 errors.
|
|
|
|
|
+
|
|
|
|
|
+**P0-13 is hiermee volledig afgerond.**
|
|
|
|
|
|
|
|
**Het gebruikte recept** (bewaard omdat punt 2 hetzelfde patroon nodig
|
|
**Het gebruikte recept** (bewaard omdat punt 2 hetzelfde patroon nodig
|
|
|
heeft als Bob voor "verbergen" kiest; werkte in één keer, geen enkele
|
|
heeft als Bob voor "verbergen" kiest; werkte in één keer, geen enkele
|
|
@@ -3213,6 +3218,38 @@ Bob nodig — óf omdat Claude er aantoonbaar niet doorheen komt, óf omdat er e
|
|
|
keuze in zit. **Het werkende recept per `StaggeredView` en alle valkuilen
|
|
keuze in zit. **Het werkende recept per `StaggeredView` en alle valkuilen
|
|
|
staan bij P2-6; niet opnieuw uitzoeken.**
|
|
staan bij P2-6; niet opnieuw uitzoeken.**
|
|
|
|
|
|
|
|
|
|
+**⛔ A en C zijn geblokkeerd door één en dezelfde oorzaak — lees dit
|
|
|
|
|
+eerst (2026-09-09, Claude, hard gemeten).**
|
|
|
|
|
+
|
|
|
|
|
+Het **Generate Dynamic Children-paneel schrijft op deze pagina niets meer
|
|
|
|
|
+weg.** Dat is een nieuwe, veel bruikbaardere diagnose dan het oude verhaal
|
|
|
|
|
+("de bron Custom Functions rendert zijn optielijst niet") — dat was een
|
|
|
|
|
+symptoom, niet de oorzaak. Het bewijs:
|
|
|
|
|
+- De **Max Items**-waarde (25) is op **zes** StaggeredViews aangepast. In de
|
|
|
|
|
+ UI toonde het veld daarna netjes leeg (*"Leave empty for no limit…"*), en
|
|
|
|
|
+ bij een tweede test de waarde `1000`. **Een verse export toonde in beide
|
|
|
|
|
+ gevallen onveranderd `.take(25)`, zes keer.** Leeg én een getal komen dus
|
|
|
|
|
+ allebei niet door — het ligt niet aan een lege waarde.
|
|
|
|
|
+- Committen via een klik op lege paneelruimte, via een klik in het
|
|
|
|
|
+ `Variable Name`-veld, én via een selectiewissel in de widget tree: alle
|
|
|
|
|
+ drie geen verschil.
|
|
|
|
|
+- **De pagina zelf is níét bevroren:** Bob's verwijdering van de twee lege
|
|
|
|
|
+ `TextField`s (punt E) kwam op dezelfde dag wél gewoon door, net als de
|
|
|
|
|
+ hernummering van `textController1` → `textController` die FlutterFlow
|
|
|
|
|
+ daarbij zelf doorvoerde.
|
|
|
|
|
+
|
|
|
|
|
+**Gevolg:** zowel punt A (tab 6 koppelen) als punt C (`Max Items` weghalen)
|
|
|
|
|
+lopen via dit paneel en zijn daarmee niet uitvoerbaar. Bob heeft A twee keer
|
|
|
|
|
+geprobeerd, Claude ~15 keer plus zes keer op Max Items; het bestand kwam elke
|
|
|
|
|
+keer **byte-identiek** terug uit de export.
|
|
|
|
|
+
|
|
|
|
|
+**Onbeproefd idee met de beste kans:** maak met `Duplicate Page` een verse
|
|
|
|
|
+kopie van Copy3 en kijk of het paneel daar wél wegschrijft. Zit de blokkade in
|
|
|
|
|
+de opgeslagen pagina-data, dan lost een duplicaat 'm op. Kost wel het
|
|
|
|
|
+opnieuw omzetten van de route (punt D) en een controle van de zes tabs.
|
|
|
|
|
+Alternatief: melden bij FlutterFlow-support. **Niet zelf gedaan — een
|
|
|
|
|
+pagina dupliceren is een grote ingreep en Bob's beslissing.**
|
|
|
|
|
+
|
|
|
**A. Tab 6 (Verhuur, catering) alsnog koppelen.** De enige `StaggeredView` die
|
|
**A. Tab 6 (Verhuur, catering) alsnog koppelen.** De enige `StaggeredView` die
|
|
|
nog op de rauwe API-respons staat; alle andere vijf draaien op
|
|
nog op de rauwe API-respons staat; alle andere vijf draaien op
|
|
|
`filterHorecagelegenheden(...)`. Recept staat bij P2-6, met
|
|
`filterHorecagelegenheden(...)`. Recept staat bij P2-6, met
|
|
@@ -3248,10 +3285,18 @@ unieke-categorieën-functie moet de binnenlijst **plat slaan** en niet
|
|
|
die nooit matchen. Aantallen in Arnhem: Activiteiten 2 items / 2 categorieën,
|
|
die nooit matchen. Aantallen in Arnhem: Activiteiten 2 items / 2 categorieën,
|
|
|
Eetgelegenheden 20 / 19, Uitgaan 4 / 4.
|
|
Eetgelegenheden 20 / 19, Uitgaan 4 / 4.
|
|
|
|
|
|
|
|
-**C. `Max Items` staat per tab op 25 — beslissing Bob.** Bestond al vóór P2-6.
|
|
|
|
|
-Filteren gebeurt vóór het afkappen, dus zoeken werkt correct — maar zónder
|
|
|
|
|
-zoekterm zie je 25 van de volledige dataset die `fetchAlleHorecagelegenheden`
|
|
|
|
|
-juist ophaalt. Limiet weghalen of laten staan?
|
|
|
|
|
|
|
+**C. `Max Items` staat per tab op 25 — Bob's besluit 2026-09-09: weghalen.
|
|
|
|
|
+⛔ Geblokkeerd, zie het kader hierboven.** Onderbouwing van het besluit, voor
|
|
|
|
|
+als de blokkade ooit opgelost is: er is al een harde begrenzing elders
|
|
|
|
|
+(`fetchAlleHorecagelegenheden` loopt door API-pagina's van 100 met
|
|
|
|
|
+`maxPaginas = 10`, dus **max 1000 per tab**), en alle zes de grids zijn
|
|
|
|
|
+`MasonryGridView.builder` — lazy, dus alleen zichtbare kaarten worden gebouwd.
|
|
|
|
|
+Er is **geen paginering/infinite scroll meer** op deze pagina (0
|
|
|
|
|
+`PagingController`s); dat is bewust, want client-side filteren kan alleen met
|
|
|
|
|
+de volledige dataset. In de praktijk is de grootste tab in Arnhem 20 items,
|
|
|
|
|
+dus `take(25)` kapt daar niets af — het risico is een plaats mét meer dan 25
|
|
|
|
|
+zaken, waar zoekresultaten dan stilletjes incompleet zijn. Wil je ooit
|
|
|
|
|
+strakker begrenzen, doe dat in `maxPaginas`, niet in de weergavelimiet.
|
|
|
|
|
|
|
|
**D. Route omzetten (was P2-6 stap 7) — bewust uitgesteld tot A en B klaar
|
|
**D. Route omzetten (was P2-6 stap 7) — bewust uitgesteld tot A en B klaar
|
|
|
zijn.** Twee `Navigate To`-wijzigingen naar `HorecagelegenhedenOverzichtCopy3`:
|
|
zijn.** Twee `Navigate To`-wijzigingen naar `HorecagelegenhedenOverzichtCopy3`:
|