|
@@ -2090,6 +2090,27 @@ al afgerond) — dit is een leeg vlak, geen laadprobleem.
|
|
|
|
|
|
|
|
## P2 — features & concept, na livegang
|
|
## P2 — features & concept, na livegang
|
|
|
|
|
|
|
|
|
|
+**P2-23 · Eigenaar: Bob — COMPILEFOUT, blokkeert de build.**
|
|
|
|
|
+Gevonden 2026-09-02 met `fvm dart analyze lib/` op een verse export:
|
|
|
|
|
+drie echte errors, allemaal in `stadsactiviteit_aanmaken_copy2` (een
|
|
|
|
|
+tweede kopie van `stadsactiviteitAanmaken`):
|
|
|
|
|
+```
|
|
|
|
|
+error - stadsactiviteit_aanmaken_copy2/..._widget.dart:1392:35 -
|
|
|
|
|
+ Undefined name 'columnMijnStadsrechtenResponse'. (ook :1401 en :1409)
|
|
|
|
|
+```
|
|
|
|
|
+De rest van het project is schoon (0 andere errors). Dit is precies het
|
|
|
|
|
+patroon uit `CLAUDE.md`: een widget verwijst naar de Backend-Query-
|
|
|
|
|
+response van een omhullende `Column`, maar op deze kopie is die query
|
|
|
|
|
+niet meegekomen — de referentie hangt in de lucht. `flutterflow
|
|
|
|
|
+export-code` loopt er wél doorheen, maar `flutter run`/een release-build
|
|
|
|
|
+zal hierop stuklopen.
|
|
|
|
|
+**Twee routes:** de wrapper-`Column` op de kopie zijn
|
|
|
|
|
+`MijnStadsrechten`-query teruggeven, óf — als `..._copy2` alleen een
|
|
|
|
|
+backup is — de pagina weggooien. Zelfde afweging geldt voor de andere
|
|
|
|
|
+kopie (`stadsactiviteitAanmakenCopy`), die de vier Property-Override-
|
|
|
|
|
+fouten uit P2-22 veroorzaakt.
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
**P2-1 · Eigenaar: Bob — testen in de API, komt terug.** Datum-filter:
|
|
**P2-1 · Eigenaar: Bob — testen in de API, komt terug.** Datum-filter:
|
|
|
Vandaag / Dit weekend / Deze week.
|
|
Vandaag / Dit weekend / Deze week.
|
|
|
|
|
|
|
@@ -3573,91 +3594,63 @@ kaarttitels op afbreken/overlopen nakijken. Ook een legitieme uitkomst:
|
|
|
niet doen — dan is de app herkenbaar op kleur maar mist hij de
|
|
niet doen — dan is de app herkenbaar op kleur maar mist hij de
|
|
|
kranten-uitstraling.
|
|
kranten-uitstraling.
|
|
|
|
|
|
|
|
-**P2-21 · Eigenaar: Claude. Punt 2/3 (Home meerkoloms) is op
|
|
|
|
|
-2026-09-01 AFGEROND en live geverifieerd — zie punt 3. Punt 4 en 5 staan
|
|
|
|
|
-nog open.** Tabletweergave herschikken i.p.v. uitrekken. Verifiëren op `emulator-5556` (tablet) én
|
|
|
|
|
-telefoonformaat. Staat los van P1-11 (labels/overflow, al afgerond).
|
|
|
|
|
-
|
|
|
|
|
-**Meetgegevens (2026-08-31, Claude).** Breekpunten staan in
|
|
|
|
|
-`lib/flutter_flow/flutter_flow_util.dart:378-380`: `kBreakpointSmall`
|
|
|
|
|
-479, `kBreakpointMedium` 767, `kBreakpointLarge` 991 (logische px).
|
|
|
|
|
-`emulator-5556` is 2560x1600 @ 320dpi → **1280x800 dp liggend**,
|
|
|
|
|
-**800x1280 dp staand** (rotatie zit op `USER_ROTATION_LOCKED`; staand
|
|
|
|
|
-testen kan met `adb -s emulator-5556 shell wm size 1600x2560`, daarna
|
|
|
|
|
-`wm size reset`). Telefoon-referentie: 1080x1920 @ 420dpi → **411x731 dp**.
|
|
|
|
|
-
|
|
|
|
|
-**1. Horeca-overzicht (gemeente én provincie) — al goed, niets doen.**
|
|
|
|
|
-Beide gebruiken een `MasonryGridView` met responsieve `crossAxisCount`
|
|
|
|
|
-(1/1/2/3 per breekpunt, o.a. `horecagelegenheden_overzicht_widget.dart:598`).
|
|
|
|
|
-Dit is meteen het na te volgen patroon.
|
|
|
|
|
-
|
|
|
|
|
-**2. Home — gecorrigeerde diagnose. Zit NIET op de Home-pagina zelf.**
|
|
|
|
|
-Een eerdere lezing van deze taak ging ervan uit dat Home's tabs hun
|
|
|
|
|
-kaarten met `List.generate` in een `Column` bouwen. **Dat klopt niet:**
|
|
|
|
|
-de `Column` per tab bevat precies één kind, namelijk het component
|
|
|
|
|
-`HomeUitgaantabelKaartComponent`. De kaartenlijst wordt *binnen* dat
|
|
|
|
|
-component gebouwd, door een **`PagedListView`**
|
|
|
|
|
-(`home_uitgaantabel_kaart_component_widget.dart:132`) met infinite
|
|
|
|
|
-scroll. Dáár moet de kolomindeling dus veranderen — en dat is gunstig:
|
|
|
|
|
-één wijziging raakt alle 5 de tabs tegelijk (het component wordt
|
|
|
|
|
-alleen door `home_widget.dart` gebruikt, 5x).
|
|
|
|
|
-
|
|
|
|
|
-*(Getest en teruggedraaid op 2026-08-31: de `Column` op Home omzetten
|
|
|
|
|
-naar een `StaggeredView` via rechtsklik → Replace werkt technisch prima
|
|
|
|
|
-— geen "Invalid Action", het kind blijft behouden — maar levert alleen
|
|
|
|
|
-`itemCount: 1` op, dus functioneel een no-op. Volledig teruggedraaid en
|
|
|
|
|
-met een verse export bevestigd byte-identiek aan het origineel. Let op
|
|
|
|
|
-bij een Replace: de **Scrollable**-instelling van de `Column` gaat
|
|
|
|
|
-verloren en moet handmatig terug.)*
|
|
|
|
|
-
|
|
|
|
|
-**3. AFGEROND 2026-09-01 — Home toont nu 1/1/2/3 kolommen, live
|
|
|
|
|
-geverifieerd op een toestel.** Eerste poging (alleen het component
|
|
|
|
|
-omzetten) is teruggedraaid omdat de grid niets rendeerde; de echte
|
|
|
|
|
-oorzaak lag in de **ouder**, en die is nu ook aangepakt.
|
|
|
|
|
-
|
|
|
|
|
-**Wat de blokkade was:** Home zet elk tabblad in een **Column met
|
|
|
|
|
-"Scrollable" aan** (genereert `SingleChildScrollView`), waardoor de
|
|
|
|
|
-hoogte oneindig is. Een `ListView` met `shrinkWrap` overleeft dat, een
|
|
|
|
|
-masonry-grid niet — die rendert dan een **leeg vlak** zonder kaarten,
|
|
|
|
|
-spinner, foutmelding of overflow. De `TabBarView` zit al in een
|
|
|
|
|
-`Expanded`, dus de begrenzing wás er; hij werd alleen weggegooid.
|
|
|
|
|
-
|
|
|
|
|
-**De drie wijzigingen (alle drie nodig):**
|
|
|
|
|
-1. Component `HomeUitgaantabelKaartComponent`: `ListView` →
|
|
|
|
|
- **StaggeredView** (`PagedMasonryGridView`), `Cross Axis Count` als
|
|
|
|
|
- Responsive Value **1/1/2/3**, paginering + pull-to-refresh +
|
|
|
|
|
- beide laadindicatoren ongewijzigd behouden.
|
|
|
|
|
-2. Datzelfde component: **Shrink Wrap UIT**.
|
|
|
|
|
-3. Home, per tabblad (alle 5): omhullende **Column op "Scrollable" uit**
|
|
|
|
|
- en het component erin op **Expanded**.
|
|
|
|
|
-
|
|
|
|
|
-**Volgorde-klem (belangrijk als je dit ooit herhaalt):** FlutterFlow
|
|
|
|
|
-weigert stap 3 met *"Invalid Action — would have caused a crashing
|
|
|
|
|
-error"* zolang de grid onbegrensd is. Oplossing: zet **Shrink Wrap
|
|
|
|
|
-tijdelijk AAN**, doe dan alle vijf de tabbladen, en zet Shrink Wrap
|
|
|
|
|
-daarna pas weer uit.
|
|
|
|
|
-
|
|
|
|
|
-**Geverifieerd:** verse export toont `PagedMasonryGridView` met de
|
|
|
|
|
-responsieve kolomtelling, **0** `SingleChildScrollView` in
|
|
|
|
|
-`home_widget.dart`, en op een echt toestel: tablet 1280dp → **3
|
|
|
|
|
-kolommen**, telefoon 411dp → **1 kolom** met exact het oude uiterlijk.
|
|
|
|
|
-Alle vijf tabbladen renderen.
|
|
|
|
|
-
|
|
|
|
|
-*(Onderweg gemeten met een tijdelijke debug-print: `MediaQuery` geeft op
|
|
|
|
|
-de tablet 1280.0 dp en op de telefoon 411.4 dp — de breekpunten kloppen
|
|
|
|
|
-dus.)*
|
|
|
|
|
-
|
|
|
|
|
-**4. Favorieten — kleine correctie, los van het bovenstaande.**
|
|
|
|
|
-`favorieten_widget.dart:339` en `:663` hebben `crossAxisCount: 2`
|
|
|
|
|
-**hardgecodeerd**. Zet dit om naar dezelfde responsieve uitdrukking als
|
|
|
|
|
-punt 1. Geen pagination in de weg hier.
|
|
|
|
|
-
|
|
|
|
|
-**5. De sliderband is géén tabletprobleem — zie P1-38.** Wat wel
|
|
|
|
|
-tablet-specifiek is: `viewportFraction: 0.75`
|
|
|
|
|
|
|
+**P2-21 · Eigenaar: Claude. Punten 1 t/m 4 zijn op 2026-09-01/02
|
|
|
|
|
+AFGEROND en met verse export geverifieerd. Alleen punt 5 (sliderband)
|
|
|
|
|
+staat nog open, en dat wacht op P1-38.** Tabletweergave herschikken
|
|
|
|
|
+i.p.v. uitrekken.
|
|
|
|
|
+
|
|
|
|
|
+**Breekpunten** staan in `lib/flutter_flow/flutter_flow_util.dart`:
|
|
|
|
|
+`kBreakpointSmall` 479, `kBreakpointMedium` 767, `kBreakpointLarge` 991
|
|
|
|
|
+(logische px). `emulator-5556` = 1280x800 dp liggend / 800x1280 staand;
|
|
|
|
|
+telefoon-referentie 411x731 dp. Het overal toegepaste patroon is
|
|
|
|
|
+**1 / 1 / 2 / 3** kolommen.
|
|
|
|
|
+
|
|
|
|
|
+**Afgerond:**
|
|
|
|
|
+1. Horeca-overzicht (gemeente én provincie) — was al goed; dit was het
|
|
|
|
|
+ na te volgen patroon.
|
|
|
|
|
+2/3. **Home** — het `PagedListView` in `HomeUitgaantabelKaartComponent`
|
|
|
|
|
+ is omgezet naar een `PagedMasonryGridView` met responsieve
|
|
|
|
|
+ `crossAxisCount`. Eén wijziging raakt alle 5 de Home-tabs. Alle
|
|
|
|
|
+ pagination-instellingen zijn intact gebleven/hersteld: infinite
|
|
|
|
|
+ scroll (`page: nextPageMarker.nextPageNumber`), pull-to-refresh
|
|
|
|
|
+ (`RefreshIndicator` + `waitForOnePageForStaggeredView()`) en beide
|
|
|
|
|
+ `SpinKitFadingCircle`-laadindicatoren.
|
|
|
|
|
+4. **Favorieten** — beide `crossAxisCount: 2` (tab 1 en tab 2) staan nu
|
|
|
|
|
+ op dezelfde responsieve uitdrukking.
|
|
|
|
|
+
|
|
|
|
|
+**Nog open — punt 5, pas ná P1-38.** `viewportFraction: 0.75`
|
|
|
(`home_uitgaan_slider_component_widget.dart:287` en
|
|
(`home_uitgaan_slider_component_widget.dart:287` en
|
|
|
-`p_uitgaan_slider_component_widget.dart:280`) geeft op 1280 dp een
|
|
|
|
|
-kaart van 960 dp breed. Verdient dezelfde breekpunt-behandeling
|
|
|
|
|
-(bv. 0.75 / 0.5 / 0.35), maar pas ná P1-38.
|
|
|
|
|
|
|
+`p_uitgaan_slider_component_widget.dart:280`) geeft op 1280 dp een kaart
|
|
|
|
|
+van 960 dp breed. Verdient dezelfde breekpunt-behandeling
|
|
|
|
|
+(bv. 0.75 / 0.5 / 0.35).
|
|
|
|
|
+
|
|
|
|
|
+**Nog te doen: visueel narekenen op `emulator-5556`** (tablet, liggend
|
|
|
|
|
+én staand via `adb -s emulator-5556 shell wm size 1600x2560`, daarna
|
|
|
|
|
+`wm size reset`) en op telefoonformaat. De code klopt, het oog nog niet
|
|
|
|
|
+gecontroleerd.
|
|
|
|
|
+
|
|
|
|
|
+**Herbruikbaar recept — pagination-blokkade omzeilen.** Rechtsklik →
|
|
|
|
|
+Replace weigert met *"Can't replace a widget that has pagination
|
|
|
|
|
+enabled"*. Werkwijze die werkt, uitgeprobeerd op een wegwerp-kopie
|
|
|
|
|
+vóór de live ingreep:
|
|
|
|
|
+1. Backend Query → Edit → **Enable Infinite Scroll uit** → de
|
|
|
|
|
+ `page`-variabele **Remove** (die is dan ongeldig) → Confirm.
|
|
|
|
|
+2. Rechtsklik → Replace → **StaggeredView** (niet GridView: die vraagt
|
|
|
|
|
+ een vaste `childAspectRatio`, en deze kaarten hebben ongelijke
|
|
|
|
|
+ hoogtes). De Backend Query, pull-to-refresh en béide
|
|
|
|
|
+ laadindicatoren overleven dit ongeschonden.
|
|
|
|
|
+3. `Cross Axis Count` → icoontje naast het label → Source **Responsive
|
|
|
|
|
+ Value** → vult zelf 4 breekpunt-takken; waarden 1/1/2/3 invullen,
|
|
|
|
|
+ "Return Type (Optional)" één keer openklappen, Confirm.
|
|
|
|
|
+4. Backend Query → Edit → Infinite Scroll weer **aan** → **Set
|
|
|
|
|
+ Additional Variable** → Parameter Name `page` → Value-icoontje →
|
|
|
|
|
+ **Next Page Index (StaggeredView)** (heet in het veld daarna
|
|
|
|
|
+ "Pagination - Next Page Number") → Confirm.
|
|
|
|
|
+- **Valkuil:** de Set-from-Variable-dialoog is te hoog voor het
|
|
|
|
|
+ venster; de onderste twee waarden en Confirm vallen weg. Sleep hem
|
|
|
|
|
+ aan het handvat bovenaan omhoog **vóór** je Responsive Value kiest —
|
|
|
|
|
+ slepen ná het invullen sluit de dialoog en gooit je invoer weg
|
|
|
|
|
+ (2x gebeurd).
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|