Просмотр исходного кода

TASKS.md/CLAUDE.md: P0-8 'null'-fix teruggegeven aan Bob met kant-en-klaar recept (17 velden, JSON-paths); Visibility-Conditional-toggle bevestigd onklikbaar voor Claude via browser-automation, nieuw blocker-patroon gedocumenteerd

bob 1 месяц назад
Родитель
Сommit
a2296a8611
2 измененных файлов с 65 добавлено и 2 удалено
  1. 19 0
      CLAUDE.md
  2. 46 2
      TASKS.md

+ 19 - 0
CLAUDE.md

@@ -822,6 +822,25 @@ voor selectie, gebruik single-click + verificatie.
   bevestigd of dat icoontje voor Claude wél bereikbaar is (waarschijnlijk
   bevestigd of dat icoontje voor Claude wél bereikbaar is (waarschijnlijk
   ook geclipt, niet meer getest deze sessie) — bij een volgende
   ook geclipt, niet meer getest deze sessie) — bij een volgende
   soortgelijke taak eerst dat proberen vóór je het opgeeft.
   soortgelijke taak eerst dat proberen vóór je het opgeeft.
+- **Visibility → "Conditional"-toggle (rechterpaneel, boven op elk
+  widget) is voor Claude structureel niet betrouwbaar te klikken —
+  apart bevestigd patroon, niet hetzelfde als de checkbox-clipping
+  hierboven.** Bevestigd 2026-08-14 op `HorecagelegenheidCurrent`
+  (`Text-adres`, zie `TASKS.md` P0-8): 7+ pogingen (directe klik op de
+  toggle-track op meerdere x/y-posities, twee keer na elkaar toggelen,
+  `left_click_drag` over de track) gaven **geen zichtbare
+  statusverandering**, en meerdere keren **sprong de widget-selectie
+  terug naar de pagina-root** (rechterpaneel toonde dan opeens
+  Scaffold/`Edit Drawer`-properties). De omweg via rechtsklik → **Wrap
+  Widget (Ctrl+B)** opende het contextmenu zelf wél zichtbaar correct,
+  maar de vervolgklik op een menu-item viel alsnog ten prooi aan de
+  bekende tree-rij-offset-instabiliteit (offset was dit keer niet
+  constant: +79px op het ene moment, +64px een moment later — dus ook
+  de kalibratietruc hielp hier niet). **Vuistregel: bij een taak die
+  puur de Visibility-Conditional-toggle nodig heeft (aan/uit, geen
+  vervang-logica), niet blijven proberen na 1-2 pogingen — teruggeven
+  aan Bob met de exacte veldnamen/JSON-paths, dat kost hem seconden per
+  veld.**
 - **Testen met een niet-Nederlandse systeemlocale: gebruik
 - **Testen met een niet-Nederlandse systeemlocale: gebruik
   `adb shell cmd locale set-app-locales <package> --locales nl-NL`**
   `adb shell cmd locale set-app-locales <package> --locales nl-NL`**
   (per-app override, Android 13+/API 33+) i.p.v. het systeembrede
   (per-app override, Android 13+/API 33+) i.p.v. het systeembrede

+ 46 - 2
TASKS.md

@@ -361,8 +361,9 @@ Info/Links/Bezorgen-tabs breekt de pagina zichtbaar (RenderFlex-overflow
 + letterlijke "null"-tekst), iets wat met de eerdere lege/placeholder-data
 + letterlijke "null"-tekst), iets wat met de eerdere lege/placeholder-data
 niet zichtbaar was.)*
 niet zichtbaar was.)*
 
 
-**P0-8 · Eigenaar: Claude — bezig (sessie 2026-08-14 builder-ronde).**
-Nu P0-7 is opgelost en de horeca-detailpagina
+**P0-8 · Eigenaar: Bob (het "null"-tekst-restpunt hieronder — Claude
+geblokkeerd, zie de nieuwe blocker-notitie; het RenderFlex-overflow-punt
+was al Bob's/Claude's gedeeld sinds eerder).** Nu P0-7 is opgelost en de horeca-detailpagina
 echte Drupal-data toont, blijken de Info/Links/Bezorgen-tabs zelf **kapot**
 echte Drupal-data toont, blijken de Info/Links/Bezorgen-tabs zelf **kapot**
 te zijn — bevestigd live 2026-08-13 (Claude, emulator-5554, nid `91142`
 te zijn — bevestigd live 2026-08-13 (Claude, emulator-5554, nid `91142`
 "De Beun", zie screenshots in scratchpad-sessie):
 "De Beun", zie screenshots in scratchpad-sessie):
@@ -406,6 +407,49 @@ te zijn — bevestigd live 2026-08-13 (Claude, emulator-5554, nid `91142`
     hele regel i.p.v. "null" te tonen wanneer een gelegenheid dat veld
     hele regel i.p.v. "null" te tonen wanneer een gelegenheid dat veld
     niet heeft ingevuld (waarschijnlijk de meeste, gezien de huidige
     niet heeft ingevuld (waarschijnlijk de meeste, gezien de huidige
     schaarse Drupal-content).
     schaarse Drupal-content).
+    - **⚠️ Geblokkeerd voor Claude (2026-08-14, nieuw bevestigd
+      patroon): de Visibility → "Conditional"-toggle op deze pagina
+      reageert niet betrouwbaar op browser-automation-klikken.** 7+
+      pogingen op de `Text-adres`-widget (directe klik op de toggle op
+      meerdere x/y-posities, dubbel-toggelen, `left_click_drag` over de
+      track) leverden telkens **geen zichtbare statusverandering** op —
+      en herhaaldelijk **sprong de selectie terug naar de pagina-root**
+      (rechterpaneel toonde dan `Edit Drawer`/Scaffold-properties i.p.v.
+      de Text-widget). Ook de alternatieve route (rechtsklik → **Wrap
+      Widget (Ctrl+B)**) opende het contextmenu zichtbaar correct, maar
+      de vervolgklik op het menu-item landede door dezelfde bekende
+      tree-rij-offset-instabiliteit (zie `CLAUDE.md`) op een andere
+      tree-rij i.p.v. op "Wrap Widget" — offset bleek dit keer +79px op
+      één moment, +64px een moment later, dus niet met een vaste
+      correctie te compenseren zoals de kalibratietruc normaal
+      toestaat. Geen wijziging aangebracht, geen schade. **Dit is een
+      nieuw, apart bevestigd blocker-patroon** (niet identiek aan de
+      al bekende checkbox-clipping-lijst in `CLAUDE.md`) — zie de
+      toegevoegde notitie daar.
+    - **Kant-en-klaar recept voor Bob (seconden per veld in zijn eigen
+      browser, geen uitzoekwerk meer nodig):** open `HorecagelegenheidCurrent`,
+      selecteer per tab de widget in de Widget Tree, rechterpaneel →
+      **Visibility → Conditional aan** → **Add Condition → Single
+      Condition** → First Value = **hetzelfde databron-veld dat al aan
+      de Text gebonden is** (klik het Value-icoontje naast de Text-
+      property om te zien welke bron/veld dat is — voor alle 17 velden
+      hieronder is dat steeds dezelfde API-call-respons, in de code
+      `horecagelegenheidCurrentEstablishmentInfoResponse.jsonBody`, in
+      de builder waarschijnlijk zichtbaar als "Establishment Info
+      Response" o.i.d.) met JSON Path **exact gelijk aan de veldnaam**
+      → Operator **"Is Set and Not Empty"** → Confirm. Exacte
+      JSON-Path-waarde per veld (geverifieerd tegen de huidige
+      broncode, `$[:].` + veldnaam, dus letterlijk overtypen):
+      - Info-tab: `$[:].adres`, `$[:].plaats`, `$[:].telefoonnummer`,
+        `$[:].email`, `$[:].kvk`.
+      - Links-tab: `$[:].website`, `$[:].menukaart`, `$[:].facebook`,
+        `$[:].twitter`, `$[:].instagram`.
+      - Bezorgen-tab: `$[:].afhaalopties`, `$[:].bestellink`,
+        `$[:].bezorgtijden`, `$[:].bezorgkosten`, `$[:].minimaleorder`,
+        `$[:].thuisbezorgtbetaalopties`, `$[:].bezorgdin`.
+      Test na de eerste 2-3 velden even met een verse export/live-check
+      (nid `91142` "De Beun" heeft weinig ingevulde velden, dus een
+      goede test-case) vóór je alle 17 doorloopt.
   - **Kanttekening:** geen van deze 17 `Text`-widgets heeft een
   - **Kanttekening:** geen van deze 17 `Text`-widgets heeft een
     `launchURL`/`InkWell` eromheen in dit bestand (bevestigd, apart van
     `launchURL`/`InkWell` eromheen in dit bestand (bevestigd, apart van
     de al bekende P1-15-knoppen elders) — het zijn platte tekstregels,
     de al bekende P1-15-knoppen elders) — het zijn platte tekstregels,