Prechádzať zdrojové kódy

TASKS.md: P1-6 volledig afgerond (evenement_horecagelegenheid + horecagelegenheid_current), sessienotitie 2026-08-18; CLAUDE.md: Set-from-Variable-render-glitch-workaround (zoekbalk i.p.v. blind klikken)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
bob 4 týždňov pred
rodič
commit
abd43fee60
2 zmenil súbory, kde vykonal 59 pridanie a 31 odobranie
  1. 18 0
      CLAUDE.md
  2. 41 31
      TASKS.md

+ 18 - 0
CLAUDE.md

@@ -444,6 +444,24 @@ conditie zelf. Klik op de **`ConditionalBuilder`**-rij (één niveau
 hoger in de tree) om de sectie **"Conditions" → "Add Condition" →
 "Single Condition"** (First Value/Operator/Second Value) te krijgen.
 
+**"Set from Variable"-dialoog (Visibility → Conditional, of First/
+Second Value binnen een Single Condition): de "Conditions" → "Single
+Condition"-suboptie rendert vaak leeg/onklikbaar bij de eerste
+expand-klik.** Bevestigd structureel (2026-08-18, meerdere velden op
+`evenement_horecagelegenheid_widget.dart`/`horecagelegenheid_current_widget.dart`):
+na klikken op "Conditions" blijft de ruimte voor "Single Condition"/
+"Combine Conditions" leeg (wel gereserveerde hoogte, geen zichtbare/
+klikbare tekst) totdat je 2-4x extra op "Conditions" klikt — een
+`zoom`-screenshot bevestigt dat de tekst er wél staat, alleen niet in
+de normale (gecomprimeerde) screenshot-resolutie. **Betrouwbaardere
+route: typ in de zoekbalk bovenaan de dialoog (bv. "Single") vóórdat je
+op "Conditions" klikt** — de gefilterde lijst toont dan alleen
+"Conditions" met exact 1 suboptie eronder, waardoor de klikpositie niet
+meer geraden hoeft te worden. Zelfde aanpak werkt voor het latere
+"UNSET"-veld binnen First/Second Value (klik toont soms alleen een
+"+"/"-"-toggle zonder de eigenlijke UNSET-rij; gewoon nogmaals klikken
+op dezelfde positie totdat de rij verschijnt, meestal 2-3x).
+
 **Checken of een `List<String>` App State-variabele een waarde bevat
 ("bevat dit item?"): geen aparte condition-operator, maar een
 transform binnen "Set from Variable".** Bevestigd 2026-08-11 op

+ 41 - 31
TASKS.md

@@ -1,6 +1,31 @@
 # Uitgaanskrant — takenlijst
 
-**Deze sessie (2026-08-17 avond, live pair-sessie met Bob op
+**Deze sessie (2026-08-18, zelfstandig, Chrome-browserautomatisering,
+Bob niet actief achter zijn scherm):** begon met het committen van
+2 sessies aan ongecommitte builder-sync (login/drawer/i18n/
+drupalRequest-fixes + een nog niet in `TASKS.md` gedocumenteerde
+`PUitgaantabelKaartComponent`-herstructurering — navraag bij Bob nodig
+over doel/status daarvan, zie de commit-boodschap van `36dd725`).
+Daarna **P1-6 volledig afgerond** op de 2 resterende bestanden
+(`evenement_horecagelegenheid_widget.dart`: bezorgkosten/bestellink-
+guard + `establishmentnid`-debugwidget verwijderd;
+`horecagelegenheid_current_widget.dart`: title/content/logo-guard) —
+zie de nu-verwijderde P1-6-subtaken hieronder voor details, gecommit
+`14f2f14`. **P2-7's orphan-mappen-`git rm`** (5 bevestigde dode mappen)
+blijft geblokkeerd door de permissie-classifier — commando staat nog
+steeds klaar in de P2-7-sectie voor Bob of een sessie met expliciete
+toestemming. **Bevestigd tijdens deze sessie: de "First Value toont
+tijdelijk weer '+'"-render-glitch uit de bestaande CLAUDE.md-notitie
+(Visibility-Conditional-recept) is structureel, niet incidenteel** —
+op meerdere velden kostte het "Conditions" → "Single Condition"-pad
+3-5 klikken voordat de suboptie daadwerkelijk zichtbaar/klikbaar werd;
+navigeren via de zoekbalk in de "Set from Variable"-dialoog (typ
+"Single") maakte het betrouwbaarder omdat de gefilterde lijst maar 1
+item toont.
+
+---
+
+**Vorige sessie (2026-08-17 avond, live pair-sessie met Bob op
 emulator-5554):** begon met een Gradle-buildfout bij Bob's eigen
 `ff-run-fvm.sh`-run — root cause: Android Studio was diezelfde dag
 automatisch geüpdatet naar een snap-revisie met **Java 25** als
@@ -730,20 +755,16 @@ binding-typen, elk met een eigen fix-route.**
     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.
+  - *(Bezorgkosten + bestellink afgerond 2026-08-18, Claude, builder +
+    verse export + `flutter analyze`: 0 errors, gecommit `14f2f14`.
+    Beide velden hebben nu dezelfde "Is Set"-guard
+    (`$[:].bezorgkosten` resp. `$[:].bestellink`) als de eerder
+    afgeronde 9. Telefoon-tekst was al gegaurd via P0-8.
+    `establishmentnid`-debugwidget (regel ~423,
+    `Text(valueOrDefault<String>(widget!.establishmentID,
+    'establishmentnid'))`) bevestigd zichtbaar/bereikbaar (Info-tab is
+    de standaard-actieve tab) en volledig verwijderd — geen
+    guard/placeholder nodig gebleken. Uit deze lijst verwijderd.)*
   - **Uitgezocht (2026-08-17, Claude, code-only, verse export ter
     controle — geen builder-UI gebruikt): beide bestanden gebruiken
     inderdaad hetzelfde JSON-Path-patroon, regelnummers en scope
@@ -763,22 +784,11 @@ binding-typen, elk met een eigen fix-route.**
       `EvenementCall.eventDate` (`$[0].datum`), adres → `EvenementCall.
       eventAdres` (`$[0].adres`), plaats → `EvenementCall.eventPlaats`
       (`$[0].plaats`).
-    - **`horecagelegenheid_current_widget.dart` (live, wél
-      prioriteit) — 3 velden, exacte regels + JSON-paths bevestigd:**
-      title (regel 403, `EstablishmentInfoCall.establshmentTitel` →
-      `$[:].titel`, cosmetisch: toont letterlijk "title"),
-      content (regel 849, `EstablishmentInfoCall.establshmentInhoud` →
-      `$[:].inhoud`, cosmetisch: `FromHTML`-custom-widget toont
-      letterlijk "content"). **Logo (regel 525) is GEEN crash-risico**
-      — dit is een `CachedNetworkImage` maar `valueOrDefault` levert
-      bij een leeg veld de niet-lege string `'logo'` als `imageUrl`
-      (geen synchrone `ArgumentError`, zie het bekende
-      lege-string-crash-patroon in `CLAUDE.md`) — gewoon een kapot-
-      plaatje-icoon, cosmetisch net als de andere twee. Zelfde
-      guard-recept als de reeds afgeronde 9 velden op
-      `evenement_horecagelegenheid_widget.dart` toepasbaar op alle
-      3 (Visibility → Conditional → JSON Path naar bovenstaand pad →
-      "Is Set and Not Empty").
+    - *(`horecagelegenheid_current_widget.dart` afgerond 2026-08-18,
+      Claude, builder + verse export + `flutter analyze`: 0 errors,
+      gecommit `14f2f14`. Alle 3 velden (title `$[:].titel`, content
+      `$[:].inhoud` op de `FromHTML`-widget, logo `$[:].logo` op de
+      `Image`-widget) hebben nu een "Is Set"-Visibility-guard.)*
   - `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)