Parcourir la source

P2-46: Bezorgen-sectie opgeknapt met echte data (Lotus, nid 157070)

- kop "Bezorgen" + labels Bezorgtijden/Bezorgkosten/Minimale bestelling
- Visibility-guard op minimale bestelling (had er geen; met label zou hij
  anders "null" tonen)
- Wrap-spacing 8 op afhaalopties/betaalopties/bezorgtin
- export + profile-build op emulator-5554 geverifieerd
- TASKS: restpunten (bestellink niet klikbaar, lijstlabels, crypto-positie)
- CLAUDE: halve Visibility-conditie blokkeert de export project-breed en is
  alleen met een paginaherlaad te herstellen; tree-zoekveld matcht op prefix

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob il y a 16 heures
Parent
commit
dd8cba975c
2 fichiers modifiés avec 72 ajouts et 2 suppressions
  1. 21 0
      CLAUDE.md
  2. 51 2
      TASKS.md

+ 21 - 0
CLAUDE.md

@@ -2624,6 +2624,27 @@ elke component-parameter `x`
 `grep -n "widget!\.x" <component>_widget.dart` — komt hij alleen in de
 declaratie voor, dan wordt hij weggegooid.
 
+**⚠️ Een Visibility-conditie half afmaken BLOKKEERT de export project-breed — en de
+Conditional-toggle laat zich dan niet meer uitzetten.** Bevestigd 2026-09-19. Zet je de
+toggle aan en lukt het niet om de Single Condition af te maken, dan staat er
+`UNSET == Second Value` in het rood en faalt `flutterflow export-code` met
+`Status: 400 / Error generating code for the project` — voor élke sessie, niet alleen de
+jouwe. De toggle terugzetten hielp niet (de klik landde wel, de staat veranderde niet).
+**Wat wél werkt: de pagina herladen.** Daarna lukte exact dezelfde klikreeks in één keer,
+inclusief de geneste Confirm die daarvóór vijf keer niets deed. Volgorde die na het
+herladen werkte: `+` bij First Value → hover ver weg → hover op de rij eronder → 10 s
+wachten → potlood klikken → bron kiezen → **de dialoog aan zijn pil bovenaan omhoog
+slepen** (anders valt de optielijst van *Predefined Path Name* onder de vensterrand, en
+die lijst scrollt niet) → pad kiezen → Confirm → operator op *Is Set and Not Empty* →
+Confirm. Raak je halverwege vast: eerst herladen, niet doorklikken.
+
+**Het tree-zoekveld matcht vanaf het BEGIN van de naam, niet als substring.** Zoeken op
+`Bezorg` gaf "No Results" terwijl `ColumnBezorgen` gewoon bestaat; `Column` vond 'm wel.
+Zoek dus op het prefix (`Text`, `Column`, `Wrap`) of op de volledige naam. En: een node
+selecteren in een **gefilterde** boom werkt, maar het filter wissen scrollt de boom terug
+naar boven — klap dan de grote eerste tak in (hier `ColumnInfo`) om de rest in beeld te
+krijgen, want het boompaneel scrollt niet met het muiswiel.
+
 **⚠️ Een JSON Path waarvan de TESTRESPONS `null` is, krijgt type "Anything" — en dat
 levert stil een letterlijke tekst "null" op in de UI.** Bevestigd 2026-09-19
 (`$[0].organisator` op `EvenementCall`). De keten: het veld is `null` in de testrespons →

+ 51 - 2
TASKS.md

@@ -1053,11 +1053,25 @@ op de Home-tabs), en de horeca-sortering (alfabetisch, live).
 ---
 
 
-### P2-46 · EventCurrent: restpunten na de ombouw van 2026-09-19 · Eigenaar: Claude — bezig
+### P2-46 · EventCurrent: restpunten na de ombouw van 2026-09-19 · Eigenaar: Claude
 **Gedaan (export- en toestel-geverifieerd, profile-build op emulator-5554):** backups `EventCurrentCopy`, `EvenementHorecagelegenheidCopy`, `EvenementInfoCopy`; event-kaart met logo 96×96 links en `EvenementInfo` (Expanded) + Maps-knop rechts; de 500 px-Container weg; `EvenementHorecagelegenheid` zonder tabs: `RowLogo` (logo 96×96 + `ColumnRechts`: titel, labels, adres/plaats, telefoon, e-mail), links in een `Wrap` (Menukaart/Website/Facebook/Instagram/X/"Op Uitgaanskrant.com" met host ervoor), `TextInhoud` (zaakbeschrijving), foto's, `ColumnOpening` en `ColumnBezorgen` met Visibility op `openingstijden`/`bezorgtijden`; e-mail leest nu `$[:]['e-mail']`; drie `phone: false`-vlaggen weg; telefoon-guard zonder `valueOrDefault`; Entree-blok alleen bij `entreeprijs`; roze/rode vulkleuren van Entree/Contact weg; EN-vertalingen "Opening hours"/"On Uitgaanskrant.com".
 **Nog te doen:**
 - Verse profile-build op het toestel voor de láátste ronde (TextInhoud, Menukaart in de Wrap, adres-Row `[Icon, TextAdres, TextPlaats]` met spacing 6): route `uitgaanskrant://uitgaanskrant.com/eventCurrent?nid=214689&horecaid=50013` (A la Ferme, heeft openingstijden) en `horecaid=67233` (Carré, alles leeg).
-- `ColumnBezorgen` is alleen in de "verborgen"-tak getest; geen Amsterdamse zaak met `bezorgtijden` gevonden op de eerste 40 van Eetgelegenheden. Zoek er een (`bezorgtijden`/`bestellink` niet null) en bekijk de sectie.
+- ✅ **`ColumnBezorgen` mét echte data bekeken en grotendeels opgeknapt (2026-09-19).**
+  **Testzaak: nid `157070`** (Chinees-Indische restaurant Lotus, Enkhuizen) — die heeft
+  álle bezorgvelden gevuld (`bezorgtijden`, `bestellink`, `bezorgkosten`, `minimaleorder`,
+  `bezorgtin`, `thuisbezorgtbetaalopties`, `cryptocoins`, `afhaalopties`) én `menukaart`,
+  `openingstijden`, `openingstijdenuitzondering` en `kvk`. Route:
+  `uitgaanskrant://uitgaanskrant.com/eventCurrent?nid=214689&horecaid=157070`.
+  **Wat er mis was:** de sectie toonde elf kale regels zónder één label — "vanaf 17 uur",
+  "2 euro", "20 euro", "Contant" zonder context, de bestellink als kale URL, geen kop, en
+  lijstwaarden die aan elkaar plakten ("AfhaalBezorgen", "EnkhuizenBovenkarspel").
+  **Gefixt en op emulator-5554 (profile) geverifieerd:** kop **"Bezorgen"** (i18n `jxlwje5u`,
+  dezelfde stijl als "Openingstijden"); labels via Combine Text op *Bezorgtijden:*,
+  *Bezorgkosten:* en *Minimale bestelling:*; **een Visibility-guard op
+  `Textbezorg-minorder`** (`establishmentMinimaleorder is set/non-empty`) — die had er géén,
+  dus met label erbij zou hij anders "Minimale bestelling: null" tonen; en **Wrap-spacing 8**
+  op de drie lijsten, zodat de waarden niet meer aan elkaar plakken.
 - `TextInhoud` staat onderaan `ColumnInfo` (na het Contact-blok), Body Medium, zonder Max Lines — overweeg padding-top 8 en een kop "Over deze zaak".
 - EN-vertaling van de nieuwe literal "Menukaart" (`22xoyrqe`) controleren in `internationalization.dart`.
 - Niet getoond: `kvk` (zaak). Bewust overgeslagen.
@@ -1109,6 +1123,41 @@ gekoppeld in de view — het wordt alleen zelden ingevuld.
 sinds deze sessie op **214439** i.p.v. 206292. Dat is bewust (zie de valkuil over
 type-inferentie in `CLAUDE.md`) — laat 'm zo staan.
 
+### P2-46-restant · Bezorgen-sectie: drie punten die nog open staan · Eigenaar: Bob (keuze) / Claude (uitvoering)
+
+Na de opknapbeurt van 2026-09-19 leest de sectie op de testzaak (nid 157070) zo:
+
+```
+Bezorgen
+Bitcoin
+Bitcoin Cash
+Bezorgtijden: vanaf 17 uur
+Bezorgkosten: 2 euro
+https://www.lotus-enkhuizen-bestellen.nl/
+Afhaal  Bezorgen
+Minimale bestelling: 20 euro
+Contant
+Enkhuizen  Bovenkarspel
+```
+
+Drie dingen nog:
+1. **`Textbestellink` is kale, niet-aantikbare tekst.** Hij hoort een link te zijn zoals
+   *Menukaart*/*Website* hierboven: tekst "Online bestellen", `On Tap → Launch URL` gebonden
+   aan `establshmentBestellink`, Text Color *Secondary* + underline. Claude kreeg de node
+   in de tree niet meer geselecteerd (het rechterpaneel bleef op de vorige Wrap hangen) —
+   na een herlaad van de builder is dit een routineklus van ±15 handelingen.
+2. **De drie lijsten hebben geen label**, dus "Contant" en "Enkhuizen Bovenkarspel" blijven
+   raadsels. Voorstel: *Betalen:* boven de betaalopties, *Bezorgt in:* boven `bezorgtin`,
+   *Afhalen of bezorgen:* boven `afhaalopties`. Kan niet via Combine Text (die zou het label
+   per lijst-item herhalen) — het moeten losse `Text`-widgets worden, en die landen bij een
+   sleep altijd op positie 0, dus de volgorde kost wat schuifwerk.
+3. **`ColumnCrypto` staat bovenaan het blok**, vlak onder de kop, terwijl "Bitcoin/Bitcoin
+   Cash" inhoudelijk bij de betaalopties onderaan horen. Verplaatsen betekent alle siblings
+   ná hem opnieuw op `ColumnBezorgen` droppen (zie de sleep-regel in `CLAUDE.md`) — bewust
+   niet gedaan, jouw keuze of het de moeite waard is.
+
+Niet vergeten: `kvk` is beschikbaar op deze zaak maar wordt bewust niet getoond.
+
 ## 🗄 Drupal / views — open
 
 #