Forráskód Böngészése

P2-46: volgorde af; guard op Bezorgt in wijst naar verkeerd veld en is no-op

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 11 órája
szülő
commit
22500eaee9
1 módosított fájl, 39 hozzáadás és 38 törlés
  1. 39 38
      TASKS.md

+ 39 - 38
TASKS.md

@@ -1063,48 +1063,49 @@ 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: nog 1 sleep + 2 guards · Eigenaar: Bob (builder)
+### P2-46-restant · Bezorgen-sectie: alleen de twee guards nog · Eigenaar: Bob (builder)
 
-**Stand na Bob's ronde van 2026-09-19 (export-geverifieerd, `dart analyze` 0 errors):**
-✅ `Textbestellink` is een echte link (`launchURL(establshmentBestellink(...))`, secondary).
-✅ Beide koppen staan nu **direct boven hun eigen lijst** — dat was het belangrijkste punt.
-
-Volgorde nu:
+**Volgorde is af (export-geverifieerd 2026-09-19):**
 ```
-Bezorgen
-Bezorgtijden: …
-Bezorgkosten: …
-Online Bestellen
-Afhaal  Bezorgen
-Bitcoin / Bitcoin Cash   ← zit nog tussen de afhaalopties en de minimale bestelling
-Minimale bestelling: …
-Bezorgt in
-Enkhuizen  Bovenkarspel
-Betaalmogelijkheden
-Contant
+Bezorgen · Bezorgtijden: … · Bezorgkosten: … · Online Bestellen ·
+Afhaal/Bezorgen · Minimale bestelling: … · Bezorgt in · <bezorggebieden> ·
+Betaalmogelijkheden · <betaalopties> · Bitcoin/Bitcoin Cash
 ```
+Ook af: de link (`launchURL(establshmentBestellink(...))`) en beide koppen.
 
-**Nog te doen:**
-1. **Eén sleep:** `ColumnCrypto` helemaal naar onderen, ná de `Wrap` met
-   `TextThuisbezorgtBetaalopties` — dan staat Bitcoin/Bitcoin Cash netjes onder
-   "Betaalmogelijkheden" bij Contant, zoals bedoeld. Nu is hij juist omhoog geschoven.
-2. **Visibility-guards op de twee koppen** (nog steeds afwezig): zonder guard staat de kop
-   boven niets op een zaak die wél bezorgt maar het veld leeg heeft. Aangetoond met
-   **nid `52981` (Delhi Indian, Amsterdam)**: heeft `bezorgtijden`, geen `bezorgtin`.
-   Per kop: Visibility → Conditional aan → rood `Unset` aanklikken → **Conditions → Single
-   Condition** → First Value = *EstablishmentInfo Response* → JSON Body → Predefined Path →
-   `establishmentbezorgbetaalopties` resp. `establshmentBezorgtin` → operator
-   **Is Set and Not Empty** → Confirm.
-   ⚠️ In één keer afmaken: een aangezette Conditional met leeg `Unset` blokkeert
-   `export-code` project-breed en de toggle gaat dan niet meer uit (alleen paginaherlaad).
-
-**Cosmetisch, jouw keuze:** de link mist de onderstreping die *Menukaart*/*Website* wel
-hebben, en er staat "Online **B**estellen" met hoofdletter.
-
-**Testen:** `uitgaanskrant://uitgaanskrant.com/eventCurrent?nid=214689&horecaid=157070`
-(Lotus — alles gevuld) en `horecaid=52981` (Delhi Indian — daar zie je de ontbrekende guard).
-
-`kvk` blijft bewust onzichtbaar.
+**⚠️ De guard op `TextBezorgtInKop` is op twee manieren mis.** Gegenereerd:
+```dart
+if ((establishmentbezorgbetaalopties(...) != null &&
+     establishmentbezorgbetaalopties(...)!.isNotEmpty) != null)
+```
+1. **Verkeerd veld** — hij kijkt naar de *betaalopties*, niet naar `establshmentBezorgtin`.
+2. **Hij doet niets** — het stuk tussen haakjes is al een `bool`, en `bool != null` is altijd
+   waar. `dart analyze` zegt het letterlijk op regel 1434: *"The operand can't be 'null', so
+   the condition is always 'true'"*.
+
+Oorzaak: bij First Value is **"Is Set and Not Empty" als *Available Options*-transform** op de
+lijst gezet (die geeft een bool terug) en daarná is de conditie-**operator** op *Is Set* blijven
+staan. Twee keer dezelfde check, waarvan de tweede leegloopt.
+
+**Goede route (per kop):** Visibility → Conditional → First Value potlood →
+*EstablishmentInfo Response* → JSON Body → Predefined Path →
+`establshmentBezorgtin` resp. `establishmentbezorgbetaalopties` →
+**Available Options: No Further Changes** → operator **Is Set and Not Empty** → géén Second
+Value → Confirm.
+*Biedt de operatorlijst dat niet aan voor een lijst:* laat de transform staan (op het juiste
+veld) en kies operator **Equal To** met Second Value **true**.
+
+**Controle in een verse export:** er moet staan
+`if (establshmentBezorgtin(...) != null && ...isNotEmpty)` — dus **zonder** de afsluitende
+`!= null`, en `dart analyze` mag op die regel geen `unnecessary_null_comparison` meer geven.
+(De twee andere `unnecessary_null_comparison`-waarschuwingen in dit bestand, op de
+`Wrap`-items, zijn onschuldig en al ouder: daar doet het `!= ''`-deel nog wél werk.)
+
+**Testen:** `horecaid=157070` (Lotus, alles gevuld) en `horecaid=52981` (Delhi Indian —
+bezorgt wel, maar heeft geen bezorggebied; daar hoort "Bezorgt in" te verdwijnen).
+
+**Cosmetisch, jouw keuze:** de link mist de onderstreping van *Menukaart*/*Website*, en er
+staat "Online **B**estellen" met hoofdletter. `kvk` blijft bewust onzichtbaar.
 
 ## 🗄 Drupal / views — open