|
@@ -100,32 +100,12 @@ tijd stoppen goed te doen.
|
|
|
|
|
|
|
|
## P0 — blokkeert livegang
|
|
## P0 — blokkeert livegang
|
|
|
|
|
|
|
|
-**P0-6 · Eigenaar: Bob (restpunt — hintText, zie hieronder).** ~~De
|
|
|
|
|
-Login-pagina toonde onder de "Wachtwoord vergeten?"-link 5 interne
|
|
|
|
|
-test-/debug-navigatieknoppen~~ — **verwijderd (Claude, builder,
|
|
|
|
|
-2026-08-09)**, live bevestigd op zowel `emulator-5554` (telefoon) als
|
|
|
|
|
-`emulator-5556` (tablet): geen enkele van de 5 knoppen
|
|
|
|
|
-("HorecagelegenhedenOverzichtPage", "selectprovinciegemeent",
|
|
|
|
|
-"horecagelegenheid 57897", "puitgaan", "kanwegtest") staat nog in de
|
|
|
|
|
-Widget Tree of op het scherm. Geen regressie geconstateerd elders op
|
|
|
|
|
-de pagina (zie ook de valse-alarm-notitie bij P1-17 hieronder).
|
|
|
|
|
-
|
|
|
|
|
-**Resterend (sub-bevinding, hetzelfde scherm) — geblokkeerd voor
|
|
|
|
|
-Claude, klein klusje voor Bob:** de e-mail- en wachtwoordvelden hebben
|
|
|
|
|
-nog geen echte placeholder-tekst — `hintText` staat nog op de
|
|
|
|
|
-FlutterFlow-standaardtekst "TextField" (keys `d507d3b9`/`t8h5f8ir` in
|
|
|
|
|
-`lib/flutter_flow/internationalization.dart`, `nl: 'TextField'`,
|
|
|
|
|
-`en: ''`, live bevestigd op beide velden op beide emulators). **Fix:**
|
|
|
|
|
-widget `UsernameField`/`PasswordField` selecteren → rechterpaneel →
|
|
|
|
|
-zoek "hint" → **Hint Text**-veld → klik het kleine bolletje/
|
|
|
|
|
-globe-icoontje rechts van het "Text"-label (Bob's eigen tip, 2026-08-09)
|
|
|
|
|
-om de vertaling te openen, i.p.v. direct in het tekstveld typen. Zet
|
|
|
|
|
-`nl: 'E-mailadres'` / `en: 'Email address'` resp. `nl: 'Wachtwoord'` /
|
|
|
|
|
-`en: 'Password'`. **Waarom niet door Claude:** het rechterpaneel is op
|
|
|
|
|
-dit scherm (393px-breed mobile-canvas-preview) te smal geclipt om dat
|
|
|
|
|
-globe-icoontje te bereiken — noch direct typen in het Hint Text-veld
|
|
|
|
|
-zelf werkte (geen enkele druk/toets kwam aan, ook niet via
|
|
|
|
|
-Localization-instellingen los, zie CLAUDE.md "bekende problemen").
|
|
|
|
|
|
|
+*(P0-6 volledig afgerond 2026-08-09 avond, incl. hintText-restpunt —
|
|
|
|
|
+door Bob zelf gedaan in de builder, geverifieerd via verse
|
|
|
|
|
+`flutterflow export-code`: keys `d507d3b9`/`t8h5f8ir` in
|
|
|
|
|
+`internationalization.dart` staan nu op `nl: 'E-mailadres'`/`en:
|
|
|
|
|
+'Email address'` resp. `nl: 'Wachtwoord'`/`en: 'Password'`. Uit deze
|
|
|
|
|
+lijst verwijderd.)*
|
|
|
|
|
|
|
|
**P0-1 · Eigenaar: Bob (10 sec klusje) — bevestigd nog open
|
|
**P0-1 · Eigenaar: Bob (10 sec klusje) — bevestigd nog open
|
|
|
(2026-08-05).** Home-slider crasht (RangeError) bij 0 API-resultaten.
|
|
(2026-08-05).** Home-slider crasht (RangeError) bij 0 API-resultaten.
|
|
@@ -159,7 +139,14 @@ tap-actie is losgekoppeld naar **P2-8**. Nog open:
|
|
|
Flexible** (staat nu op None — rechterpaneel-Expansion-control was
|
|
Flexible** (staat nu op None — rechterpaneel-Expansion-control was
|
|
|
niet bereikbaar voor Claude, clipping). Zonder Flexible kan een
|
|
niet bereikbaar voor Claude, clipping). Zonder Flexible kan een
|
|
|
lange gemeente/provincienaam een `RenderFlex overflowed`-fout geven
|
|
lange gemeente/provincienaam een `RenderFlex overflowed`-fout geven
|
|
|
- op smalle schermen.
|
|
|
|
|
|
|
+ op smalle schermen. **Bob dacht dit gedaan te hebben (2026-08-09
|
|
|
|
|
+ avond), maar geverifieerd via verse export: nog steeds niet
|
|
|
|
|
+ toegepast** — de Text staat nog kaal (geen Flexible/Expanded) in
|
|
|
|
|
+ `header_buttons_component_widget.dart` regel 199-216. Vermoedelijk
|
|
|
|
|
+ hetzelfde "edit hield niet vast"-patroon als elders gedocumenteerd
|
|
|
|
|
+ in `CLAUDE.md` (rechterpaneel-clipping) — check na een nieuwe
|
|
|
|
|
+ poging opnieuw via een verse export, niet alleen op het
|
|
|
|
|
+ rechterpaneel zelf vertrouwen.
|
|
|
2. `EventCurrent` heeft geen gedeeld header-component (AppBar → Row
|
|
2. `EventCurrent` heeft geen gedeeld header-component (AppBar → Row
|
|
|
met IconButtonBack/IconButtonDrawer, geen naam-Text). Toevoegen:
|
|
met IconButtonBack/IconButtonDrawer, geen naam-Text). Toevoegen:
|
|
|
nieuwe Text-widget als 3e kind van die Row → Conditional Value
|
|
nieuwe Text-widget als 3e kind van die Row → Conditional Value
|
|
@@ -220,16 +207,32 @@ regel in de knop bereikt wordt — dat gebeurt dus altijd, ook al
|
|
|
crasht de knop daarna nog steeds. Live bevestigd (emulator, testaccount
|
|
crasht de knop daarna nog steeds. Live bevestigd (emulator, testaccount
|
|
|
`bobcity`): na inloggen + navigeren naar `kanweg` komt er nu een
|
|
`bobcity`): na inloggen + navigeren naar `kanweg` komt er nu een
|
|
|
`Cookie`-header mee en status 200 i.p.v. de eerdere lege/403-request.
|
|
`Cookie`-header mee en status 200 i.p.v. de eerdere lege/403-request.
|
|
|
-**Resterend (cosmetisch, builder-only):** de If/Then-conditie ná de
|
|
|
|
|
-Custom Action-stap in de Inloggen-knop's Actions aanpassen van
|
|
|
|
|
-"resultDrupalLogin is true" naar een check op het JSON-veld
|
|
|
|
|
-`$.success` (zelfde recept als het bekende
|
|
|
|
|
-"Is Set and Not Empty tegen valueOrDefault"-patroon hieronder: bind
|
|
|
|
|
-tegen de rauwe `getJsonField($.success)`-expressie, operator "Is
|
|
|
|
|
-Set"/"== true"), zodat de succes-/foutmelding weer verschijnt. Claude
|
|
|
|
|
-kon het Actions-paneel voor deze knop niet vinden ondanks uitgebreid
|
|
|
|
|
-zoeken (widget-tree, canvas, rechtsklik-context-menu's, Cmd+K) — zie
|
|
|
|
|
-CLAUDE.md voor wat wel/niet geprobeerd is.
|
|
|
|
|
|
|
+**Update 2026-08-09 avond: Bob heeft de conditie zelf aangepast — de
|
|
|
|
|
+crash is inderdaad weg, maar de nieuwe conditie heeft een andere bug
|
|
|
|
|
+en er kwam een tweede probleem aan het licht, allebei bevestigd via
|
|
|
|
|
+verse `flutterflow export-code` (`login_widget.dart:534-538`):**
|
|
|
|
|
+1. **De conditie is nu `getJsonField(_model.resultDrupalLogin,
|
|
|
|
|
+ r'''$.success''') != null` — dat staat feitelijk altijd op waar.**
|
|
|
|
|
+ `drupalLogin` retourneert namelijk ALTIJD een `success`-veld, zowel
|
|
|
|
|
+ bij een geslaagde login (`success: true`) als bij een mislukte
|
|
|
|
|
+ (`success: false`, zie `drupal_login.dart`) — het veld is dus nooit
|
|
|
|
|
+ afwezig/`null`, alleen de *waarde* verschilt. Een "Is Set"-achtige
|
|
|
|
|
+ `!= null`-check ziet dat verschil niet. **Gevolg: een fout
|
|
|
|
|
+ wachtwoord of netwerkfout wordt nu stil behandeld alsof het inloggen
|
|
|
|
|
+ gelukt is** — de `else`-tak met "Inloggen mislukt..." is
|
|
|
|
|
+ onbereikbare code geworden, en `FFAppState().userSessionid` etc.
|
|
|
|
|
+ worden gevuld met lege/`"null"`-strings uit de mislukte respons.
|
|
|
|
|
+ **Fix:** conditie moet de daadwerkelijke boolean-waarde vergelijken
|
|
|
|
|
+ (`== true`), niet alleen of het veld aanwezig is — in de builder dus
|
|
|
|
|
+ niet "Is Set" maar een echte gelijkheids-check tegen `true`.
|
|
|
|
|
+2. **Nieuw zichtbaar geworden (was eerder gemaskeerd door de crash):**
|
|
|
|
|
+ ná de if/else staat een onvoorwaardelijke `showDialog(...)` (regel
|
|
|
|
|
+ 577-593) die bij **elke** inlogpoging een AlertDialog met titel
|
|
|
|
|
+ "melding" toont met de rauwe JSON-respons als platte tekst erin —
|
|
|
|
|
+ oogt als achtergebleven debug/testcode, vergelijkbaar met de al
|
|
|
|
|
+ verwijderde testknoppen van P0-6. Nu de crash weg is, ziet elke
|
|
|
|
|
+ gebruiker dit bij elke inlogpoging. Aanbevolen: dit dialoogblok
|
|
|
|
|
+ (regel 577-593) verwijderen.
|
|
|
|
|
|
|
|
**P1-1 · Eigenaar: Bob (mechanisch, ~10 sec per stuk) — audit
|
|
**P1-1 · Eigenaar: Bob (mechanisch, ~10 sec per stuk) — audit
|
|
|
compleet, wachtend op Bob.** Loading/foutafhandeling-patroon uitrollen
|
|
compleet, wachtend op Bob.** Loading/foutafhandeling-patroon uitrollen
|
|
@@ -530,7 +533,7 @@ RangeError op deze en de `horecagelegenheidCurrent`-pagina bij een
|
|
|
niet-bestaande `nid` is al gedekt door P1-1 punt 4 — live bevestigd,
|
|
niet-bestaande `nid` is al gedekt door P1-1 punt 4 — live bevestigd,
|
|
|
zie daar.)
|
|
zie daar.)
|
|
|
|
|
|
|
|
-**P1-13 · Eigenaar: Onbepaald.** Op `HorecagelegenhedenOverzicht` →
|
|
|
|
|
|
|
+**P1-13 · Eigenaar: Claude — bezig (sessie 2026-08-09-c).** Op `HorecagelegenhedenOverzicht` →
|
|
|
tab "Activiteiten" gooit de kaartjesgrid herhaaldelijk `RenderFlex
|
|
tab "Activiteiten" gooit de kaartjesgrid herhaaldelijk `RenderFlex
|
|
|
overflowed`-fouten ("on the right", 16-243px, tientallen keren; één
|
|
overflowed`-fouten ("on the right", 16-243px, tientallen keren; één
|
|
|
keer "on the bottom", 2653-5382px) — al meerdere sessies bevestigd
|
|
keer "on the bottom", 2653-5382px) — al meerdere sessies bevestigd
|
|
@@ -578,7 +581,8 @@ live aanwezig, **nog geen verse volledige stack trace gevangen**
|
|
|
`horecagelegenheden_overzicht_widget.dart:388-390`, of iets in het
|
|
`horecagelegenheden_overzicht_widget.dart:388-390`, of iets in het
|
|
|
logo/categorie-tag-`Stack` — nog niet vastgesteld.
|
|
logo/categorie-tag-`Stack` — nog niet vastgesteld.
|
|
|
|
|
|
|
|
-**P1-19 · Eigenaar: Onbepaald.** Nieuwe, nog niet eerder gedocumenteerde
|
|
|
|
|
|
|
+**P1-19 · Eigenaar: Bob (Wrap Widget-menuklik registreert niet, zie
|
|
|
|
|
+hieronder — Claude geblokkeerd).** Nieuwe, nog niet eerder gedocumenteerde
|
|
|
`RenderFlex overflowed`-crash op de **Home-pagina**, live bevestigd met
|
|
`RenderFlex overflowed`-crash op de **Home-pagina**, live bevestigd met
|
|
|
een **volledige, verse stack trace** (2026-08-09, via de
|
|
een **volledige, verse stack trace** (2026-08-09, via de
|
|
|
`setsid`-interactieve-`flutter run`-sessie uit CLAUDE.md, 2x identiek
|
|
`setsid`-interactieve-`flutter run`-sessie uit CLAUDE.md, 2x identiek
|
|
@@ -612,6 +616,30 @@ geen wrap) ook voorkomt op de niet-Home-varianten van dit component
|
|
|
(`PUitgaantabelKaartComponent`/`kaartTabelUitgaanComp`/
|
|
(`PUitgaantabelKaartComponent`/`kaartTabelUitgaanComp`/
|
|
|
`kaartTabelUitgaanSComp`, zie ook de P2-7-opschoonnotitie over die
|
|
`kaartTabelUitgaanSComp`, zie ook de P2-7-opschoonnotitie over die
|
|
|
laatste twee) — bij het oppakken van deze taak even meenemen.**
|
|
laatste twee) — bij het oppakken van deze taak even meenemen.**
|
|
|
|
|
+- **Poging door Claude (2026-08-09), geblokkeerd — geen wijziging
|
|
|
|
|
+ aangebracht.** De juiste `Row`-node (kind `tagCategorieComponent`,
|
|
|
|
|
+ binnen `Container` → sibling van de image-`Stack`) was betrouwbaar
|
|
|
|
|
+ te selecteren via de Widget Tree (zelfde kalibratietruc als
|
|
|
|
|
+ CLAUDE.md beschrijft: klik op nominale y-positie landde structureel
|
|
|
|
|
+ 63px lager, dus y-63 gebruikt — dat werkte hier wél consistent,
|
|
|
|
|
+ in tegenstelling tot de "niet-constante offset" die P1-15 blokkeerde).
|
|
|
|
|
+ Rechtsklik → contextmenu opende betrouwbaar met **"Wrap Widget
|
|
|
|
|
+ (Ctrl+B)"** zichtbaar op exact geverifieerde coördinaten (bevestigd
|
|
|
|
|
+ met `zoom`). Maar **de klik op dat menu-item registreert niet** — 3x
|
|
|
|
|
+ geprobeerd op de exacte tekst-coördinaten (menu's positie verschilt
|
|
|
|
|
+ wel steeds licht per keer geopend, maar telkens opnieuw met `zoom`
|
|
|
|
|
+ geverifieerd vóór de klik) + 1x de `Ctrl+B`-sneltoets direct op de
|
|
|
|
|
+ geselecteerde Row — geen van alle opende een wrap-type-dialoog of
|
|
|
|
|
+ wijzigde de tree (geen nieuwe parent-node, geen dubbele widget). Een
|
|
|
|
|
+ van de pogingen landde net naast het menu en deselecteerde terug naar
|
|
|
|
|
+ de root-component (geen schade, gewoon opnieuw moeten selecteren).
|
|
|
|
|
+ **Nieuw exemplaar van het bekende "menu-actie-klik registreert niet
|
|
|
|
|
+ zichtbaar"-patroon**, nu ook bevestigd op "Wrap Widget" specifiek
|
|
|
|
|
+ (niet eerder in CLAUDE.md genoemd voor dit menu-item). **Concreet voor
|
|
|
|
|
+ Bob:** component `HomeUitgaantabelKaartComponent` → Widget Tree →
|
|
|
|
|
+ `ListView` → `Container` → `Row` → `Container` (2e kind, na de
|
|
|
|
|
+ image-`Stack`) → `Row` (bevat `tagCategorieComponent` als enige kind)
|
|
|
|
|
+ → rechtsklik → **Wrap Widget (Ctrl+B)** → kies **Wrap** i.p.v. Row.
|
|
|
|
|
|
|
|
**P1-9 · Eigenaar: Onbepaald.** Visuele polish (los, per pagina) —
|
|
**P1-9 · Eigenaar: Onbepaald.** Visuele polish (los, per pagina) —
|
|
|
resterend na sessie 2026-08-06:
|
|
resterend na sessie 2026-08-06:
|