|
@@ -609,86 +609,80 @@ leverbaar-veld per horecagelegenheid. Wacht op Bob: eerst het
|
|
|
API-endpoint aan Drupal-kant configureren. Daarna tonen/verbergen op
|
|
API-endpoint aan Drupal-kant configureren. Daarna tonen/verbergen op
|
|
|
basis van het echte veld i.p.v. de huidige dode tap.
|
|
basis van het echte veld i.p.v. de huidige dode tap.
|
|
|
|
|
|
|
|
-**P1-6 · Eigenaar: Claude — bezig (sessie 2026-08-16 avond, guard-aanpak
|
|
|
|
|
-op `evenement_horecagelegenheid_widget.dart`'s grote cluster, zie
|
|
|
|
|
-architectuur-bevinding hieronder).** Letterlijke
|
|
|
|
|
-veldnaam i.p.v. nette placeholder bij ontbrekende data. **2026-08-05:
|
|
|
|
|
-audit herhaald (Claude, verse grep) —
|
|
|
|
|
-scope flink groter dan de eerdere 13 treffers van 2026-08-04, met name
|
|
|
|
|
-`evenement_horecagelegenheid_widget.dart` bleek nog niet meegenomen.**
|
|
|
|
|
-Patroon overal hetzelfde: `valueOrDefault<String>(<bron>, '<default>')`
|
|
|
|
|
-waarbij de default gelijk is aan de veld-/functienaam.
|
|
|
|
|
|
|
+**P1-6 · Eigenaar: Onbepaald (geen sessie "— bezig", zie architectuur-
|
|
|
|
|
+bevinding + voortgang hieronder).** Letterlijke veldnaam i.p.v. nette
|
|
|
|
|
+placeholder bij ontbrekende data. **2026-08-05: audit herhaald (Claude,
|
|
|
|
|
+verse grep) — scope flink groter dan de eerdere 13 treffers van
|
|
|
|
|
+2026-08-04, met name `evenement_horecagelegenheid_widget.dart` bleek
|
|
|
|
|
+nog niet meegenomen.** Patroon overal hetzelfde:
|
|
|
|
|
+`valueOrDefault<String>(<bron>, '<default>')` waarbij de default
|
|
|
|
|
+gelijk is aan de veld-/functienaam.
|
|
|
|
|
|
|
|
**⚠️ Architectuur-bevinding (2026-08-16 avond, Claude, live builder):
|
|
**⚠️ Architectuur-bevinding (2026-08-16 avond, Claude, live builder):
|
|
|
dit is GEEN uniforme mechanische fix — twee heel verschillende
|
|
dit is GEEN uniforme mechanische fix — twee heel verschillende
|
|
|
-binding-typen, maar één is niet oplosbaar via de builder-UI.**
|
|
|
|
|
-- **Component-Parameter-gebonden velden (Set from Variable → "Parameter:
|
|
|
|
|
- <naam>") hébben een bewerkbaar "Default Variable Value"-veld** —
|
|
|
|
|
- dit is de simpele, betrouwbare route: klik het Value-icoontje naast
|
|
|
|
|
- "Text" → typ nieuwe tekst in "Default Variable Value" → Confirm.
|
|
|
|
|
- **8 velden hiermee afgerond en bevestigd via verse export
|
|
|
|
|
- (2026-08-16):** `horecagelegenheidoverzicht_kaart_widget.dart`
|
|
|
|
|
- titel→"Naam onbekend", adres→"Adres onbekend", plaats→"Plaats
|
|
|
|
|
- onbekend"; `evenement_info_widget.dart` adres→"Adres onbekend",
|
|
|
|
|
- plaats→"Plaats onbekend", entreeprijs→"Prijs onbekend",
|
|
|
|
|
- entreetoelichting→"Geen toelichting", contact→"Contact onbekend".
|
|
|
|
|
- Bijvangst: `entreeprijs`/`entreetoelichting` op `EvenementInfo`
|
|
|
|
|
- bleken al een Visibility-conditie ("is set/non-empty") te hebben —
|
|
|
|
|
- Default Value verandert daar niets zichtbaars, maar is onschadelijk.
|
|
|
|
|
-- **JSON-Path-gebonden velden (Set from Variable → "Evenement
|
|
|
|
|
- Response"/"JSON Body" → JSON Path `$[0].veld` rechtstreeks op een
|
|
|
|
|
- API-respons, geen Component Parameter ertussen) hebben GEEN
|
|
|
|
|
- "Default Variable Value"-veld in deze FlutterFlow-versie** — grondig
|
|
|
|
|
- gecheckt op `evenement_component_widget.dart`'s `Text-titel`
|
|
|
|
|
- (`$[0].title`): het "Available Options"-dropdown biedt alleen "JSON
|
|
|
|
|
- Path"/"To Data Type"/"No Further Changes", geen default-tekst-optie;
|
|
|
|
|
- het bronnen-kiezer-scherm (pennetje naast "Variable") biedt alleen
|
|
|
|
|
- een compleet nieuwe binding kiezen, geen aanvullend default-veld.
|
|
|
|
|
- **Niet verder geprobeerd na deze grondige check (conform de
|
|
|
|
|
- 1-2-pogingen-regel)** — dit lijkt een echte FlutterFlow-UI-beperking,
|
|
|
|
|
- geen klikprecisie-probleem. **Praktisch gevolg: de resterende
|
|
|
|
|
- ~40 treffers hieronder zijn zo NIET te fixen**, tenzij via een
|
|
|
|
|
- structureel andere aanpak (bv. een `ConditionalBuilder`/Visibility
|
|
|
|
|
- "Is Set"-guard die de tekst helemaal verbergt i.p.v. een nettere
|
|
|
|
|
- fallback-tekst toont — dat is een grotere ontwerpwijziging per veld,
|
|
|
|
|
- geen 1-op-1 vervanging van deze taak. Ter overweging aan Bob.**
|
|
|
|
|
-- Nog niet gecheckt of `event_current_widget.dart`/
|
|
|
|
|
- `horecagelegenheid_current_widget.dart`/
|
|
|
|
|
- `evenement_horecagelegenheid_widget.dart` component-parameter- of
|
|
|
|
|
- JSON-Path-gebonden zijn — gezien hun architectuur (eigen API-call op
|
|
|
|
|
- basis van een `nid`/`establishmentID`-parameter, geen doorgegeven
|
|
|
|
|
- velden) is JSON-Path-binding waarschijnlijker, dus vermoedelijk
|
|
|
|
|
- hetzelfde probleem, maar niet 100% bevestigd per veld.
|
|
|
|
|
-
|
|
|
|
|
-**Resterende, nog niet geprobeerde/bevestigd-geblokkeerde regels:**
|
|
|
|
|
-- `evenement_component_widget.dart:221/242/317/339` — title/eventDate/adres/plaats
|
|
|
|
|
- (**bevestigd JSON-Path-gebonden, zie boven — niet oplosbaar via
|
|
|
|
|
- Default Value**)
|
|
|
|
|
-- `horecagelegenheid_current_widget.dart:377/500/747` — title/logo/content.
|
|
|
|
|
- **Zie P0-7:** deze 3 velden bleken 2026-08-12 live op *elke* geteste
|
|
|
|
|
- gelegenheid permanent op de placeholder te blijven staan (niet
|
|
|
|
|
- incidenteel) — een betere Default-Value-tekst alleen lost dat niet
|
|
|
|
|
- op. P0-7 zelf is inmiddels gefixt; bindingstype nog niet gecheckt.
|
|
|
|
|
-- `event_current_widget.dart:327/442` — title/date (de losse
|
|
|
|
|
- `nid`-regel 418 is inmiddels vervallen: P1-9 heeft die hele
|
|
|
|
|
- debug-tekstwidget verwijderd, dus dat regelnummer bestaat niet meer)
|
|
|
|
|
-- `evenement_horecagelegenheid_widget.dart` — **grootste blok, ~30
|
|
|
|
|
- treffers**: regels 178(HorecaNaam), 418(establishmentnid),
|
|
|
|
|
- 445(email), 476(Logo), 499(Plaats), 533(Adres), 577/586/597
|
|
|
|
|
- (Telefoon, 3x — icoon/tekst/tooltip-varianten), 642(menukaart),
|
|
|
|
|
- 710(entreeprijs), 743(EntreeToelichting), 818/827/843(facebook, 3x),
|
|
|
|
|
- 885/894/910(instagram, 3x), 952/961(twitter, 2x),
|
|
|
|
|
- 1016/1025/1041(Website, 3x), 1083/1092/1108(urluk, 3x),
|
|
|
|
|
- 1194(Openingstijden), 1222(OpeningstijdenUitzondering),
|
|
|
|
|
- 1310(Bezorgtijden), 1337(bezorgkosten), 1364(bestellink).
|
|
|
|
|
|
|
+binding-typen, elk met een eigen fix-route.**
|
|
|
|
|
+- **Component-Parameter-gebonden velden** (Set from Variable →
|
|
|
|
|
+ "Parameter: <naam>") hébben een bewerkbaar "Default Variable
|
|
|
|
|
+ Value"-veld — simpele route: Value-icoontje naast "Text" → typ
|
|
|
|
|
+ nieuwe tekst in "Default Variable Value" → Confirm. **8 velden
|
|
|
|
|
+ hiermee afgerond:** `horecagelegenheidoverzicht_kaart_widget.dart`
|
|
|
|
|
+ titel/adres/plaats; `evenement_info_widget.dart`
|
|
|
|
|
+ adres/plaats/entreeprijs/entreetoelichting/contact.
|
|
|
|
|
+- **JSON-Path-gebonden velden** (Set from Variable → API-respons →
|
|
|
|
|
+ JSON Path, geen Component Parameter ertussen) hebben GEEN "Default
|
|
|
|
|
+ Variable Value"-veld — de Default-Value-route werkt hier niet.
|
|
|
|
|
+ **Werkende alternatieve fix: Visibility → Conditional-guard**,
|
|
|
|
|
+ zelfde "Is Set"/"Is Set and Not Empty"-patroon als P0-8/P1-15. Route
|
|
|
|
|
+ (herbruikbaar recept): widget selecteren → Visibility → Conditional
|
|
|
|
|
+ aan → conditieveld klikken → Conditions → Single Condition → "+" bij
|
|
|
|
|
+ First Value → (soms 2-3x nodig door een render-glitch, First Value
|
|
|
|
|
+ toont dan tijdelijk weer "+" ook al staat de waarde al goed — check
|
|
|
|
|
+ de "Condition"-samenvatting bovenin het paneel als ground truth) →
|
|
|
|
|
+ Set Variable → EstablishmentInfo Response → **als "Predefined Path"
|
|
|
|
|
+ vastloopt (Confirm reageert niet, bekend "geneste dialoog"-patroon
|
|
|
|
|
+ uit CLAUDE.md): schakel over op "JSON Path" i.p.v. Predefined Path
|
|
|
|
|
+ en typ het pad handmatig (bv. `$[:].bezorgtijden`) — dat werkte
|
|
|
|
|
+ wél elke keer.** Operator: "Is Set and Not Empty" (String-type
|
|
|
|
|
+ velden) of "Is Set" (Image Path/Json-type velden, geen "Not Empty"
|
|
|
|
|
+ variant beschikbaar daar).
|
|
|
|
|
+ - **9 velden afgerond op `evenement_horecagelegenheid_widget.dart`
|
|
|
|
|
+ (2026-08-16, Claude, bevestigd via verse export + `flutter
|
|
|
|
|
+ analyze`: 0 errors, gecommit `4fbcb0d`):** HorecaNaam (titel),
|
|
|
|
|
+ email, logo, plaats, adres, entreeprijs, entreetoelichting,
|
|
|
|
|
+ OpeningstijdenUitzondering, bezorgtijden.
|
|
|
|
|
+ - **Resterend op ditzelfde bestand (~15 treffers, zelfde recept,
|
|
|
|
|
+ geen "— bezig" claim):** bezorgkosten (regel ~1337), bestellink
|
|
|
|
|
+ (~1364), Telefoon-tekst is hier al gegaurd (P0-8), maar
|
|
|
|
|
+ **`establishmentnid` (regel ~423, `Text(valueOrDefault<String>(
|
|
|
|
|
+ widget!.establishmentID, 'establishmentnid'))`) is vermoedelijk
|
|
|
|
|
+ geen placeholder-probleem maar een vergeten debug-widget** —
|
|
|
|
|
+ zelfde patroon als het P1-9-precedent (`event_current_widget.dart`'s
|
|
|
|
|
+ kale nid-tekst): `establishmentID` is een verplichte parameter, dus
|
|
|
|
|
+ dit veld staat altijd gevuld en toont daardoor gewoon permanent een
|
|
|
|
|
+ rauwe database-ID op het scherm. **Voorstel: widget helemaal
|
|
|
|
|
+ verwijderen i.p.v. een guard/placeholder toe te voegen** — eerst
|
|
|
|
|
+ even in de builder checken of dit een zichtbaar/bereikbaar stuk UI
|
|
|
|
|
+ is (kan ook een niet-gerenderde tab zijn) voordat iemand dit
|
|
|
|
|
+ oppakt.
|
|
|
|
|
+ - **Nog niet gecheckt of `evenement_component_widget.dart` (title/
|
|
|
|
|
+ eventDate/adres/plaats, regels 221/242/317/339) en
|
|
|
|
|
+ `horecagelegenheid_current_widget.dart` (title/logo/content,
|
|
|
|
|
+ regels 377/500/747 — zie P0-7) hetzelfde JSON-Path-patroon
|
|
|
|
|
+ gebruiken**, maar gezien hun architectuur (eigen API-call, geen
|
|
|
|
|
+ doorgegeven velden) is dat waarschijnlijk — zelfde guard-recept
|
|
|
|
|
+ zou moeten werken.
|
|
|
|
|
+ - `event_current_widget.dart:327/442` — title/date (de losse
|
|
|
|
|
+ `nid`-regel 418 is inmiddels vervallen: P1-9 heeft die hele
|
|
|
|
|
+ debug-tekstwidget al verwijderd, dat regelnummer bestaat niet meer)
|
|
|
- Grensgeval, **geprobeerd en geblokkeerd (2026-08-16): geen
|
|
- Grensgeval, **geprobeerd en geblokkeerd (2026-08-16): geen
|
|
|
Default-Value-veld gevonden op deze Custom-Function-uitkomst-binding
|
|
Default-Value-veld gevonden op deze Custom-Function-uitkomst-binding
|
|
|
(`Text = valueOrDefault(kortDatum(datum), 'def')`)** — de
|
|
(`Text = valueOrDefault(kortDatum(datum), 'def')`)** — de
|
|
|
"Set from Variable"-dialoog toont hier "Custom Function: kortDatum" +
|
|
"Set from Variable"-dialoog toont hier "Custom Function: kortDatum" +
|
|
|
- "Set Function Arguments", geen apart default-tekst-veld, zelfde
|
|
|
|
|
- patroon als de JSON-Path-beperking hierboven maar dan voor een
|
|
|
|
|
- function-call-binding. Geen wijziging aangebracht (veilig
|
|
|
|
|
- geannuleerd). `p_uitgaan_slider_kaart_component_widget.dart:284`
|
|
|
|
|
|
|
+ "Set Function Arguments", geen apart default-tekst-veld. De
|
|
|
|
|
+ guard-aanpak (Visibility-conditie op de HELE Text, i.p.v. een
|
|
|
|
|
+ aangepaste default-tekst) is hier niet geprobeerd maar zou
|
|
|
|
|
+ vermoedelijk wel werken (zelfde principe: JSON Path naar de rauwe
|
|
|
|
|
+ `datum`-bron, operator "Is Set"). `p_uitgaan_slider_kaart_component_widget.dart:284`
|
|
|
toont nog steeds `'def'` als datum ontbreekt.
|
|
toont nog steeds `'def'` als datum ontbreekt.
|
|
|
- Niet-verdachte gevallen bewust genegeerd (echte inhoudelijke
|
|
- Niet-verdachte gevallen bewust genegeerd (echte inhoudelijke
|
|
|
fallback, geen technische naam): `'Evenement'`
|
|
fallback, geen technische naam): `'Evenement'`
|