Ver Fonte

Importfix nagemeten + correctie: horeca-overzicht heeft geen display_id-parameter

Na Bob's importfix: 1025 -> 1525 rijen, 1010 -> 1508 unieke events, alles in
2026. Toekomstige events van 4 naar 6 uniek; nog steeds niets na september.
Drie nieuwe bevindingen als taak 28/29/30: 15% van de events heeft geen
categorie en is daardoor in geen enkele tab zichtbaar; 21% bevat HTML-
entiteiten in titel/body/categorie terwijl de establishments-view dat wel
goed doet; en een node kan zichzelf vermenigvuldigen in flutterflow_events
(nid 214439 komt 14x identiek terug).

Correctie op een eerdere aanname van mij: horecagelegenhedenOverzichtCurrent
accepteert GEEN display_id-parameter - alleen plaats. De zes tabs hardcoden
een categorie-id en services_1. Dat verwarde ik met HomeUitgaantabelKaart-
Component uit P1-44. Er is dus een extra app-stap nodig voor taak 20/26.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob há 3 dias atrás
pai
commit
30f083952d
1 ficheiros alterados com 106 adições e 36 exclusões
  1. 106 36
      TASKS.md

+ 106 - 36
TASKS.md

@@ -1,40 +1,90 @@
 ## ▶ Nu aan de beurt (stand 2026-09-11)
 
-### ⚠️ Contentstand productie, gemeten 2026-09-11 — lees dit vóór de Drupal-taken
+### ⚠️ Contentstand productie — hermeten ná Bob's importfix (2026-09-11)
 
-Ik heb de hele evenementenvoorraad op productie doorgeteld
-(`flutterflow_events`, 41 pagina's):
+Bob meldde 2026-09-11 dat de import op productie al een tijd niet liep en
+dat hij dat net gefixt heeft. Direct nagemeten (`flutterflow_events`, met
+cache-buster):
 
-| | aantal |
-|---|---|
-| events in de database | **1025** |
-| zaken waar die aan hangen | **136** |
-| events **in de toekomst** | **4** |
-
-Die 4 zitten in 2 plaatsen: **Valkenburg (3)** en **Roermond (1)**. Alle
-andere 1021 zijn verlopen; de nieuwste daarvan is van 6 september.
-
-**Wat dat betekent:**
-- Landelijk per display: services_1 = 4, services_2 = 3, services_3 = 1,
-  services_5 = 3, en **services_4 (Activiteiten), services_6 (Films) en
-  services_7 (Jeugd) = 0**. De Home-tabs zijn dus voor iedereen grotendeels
-  leeg, ongeacht gemeente — `HomeTabelCall` stuurt namelijk **geen `townid`
-  mee**, Home is bewust landelijk (zie `CLAUDE.md`). Op het toestel
-  gecontroleerd: de Uitgaan-tab toont het ene Roermondse item, de andere
-  tabs tonen de logo-lege-staat.
-- **Waar `townid` wél meegaat** (de P-pagina's via `UitgaanstabelCall`, en
-  de horeca-agenda) **is Amsterdam onbruikbaar als testplaats**: 0 items op
-  élke display en 0 agenda-events op alle 300 Amsterdamse zaken. Voor
-  horeca/establishments blijft Amsterdam prima (300+ zaken); voor events
-  gebruik je **Valkenburg `townid=27301`** of **Roermond `townid=27205`**.
-- Het `townid`-filter zelf wérkt aantoonbaar: Valkenburg `27301` geeft 3,
-  buurplaats Berg `27286` geeft 0, ongefilterd geeft 4.
-
-**Dit is geen app-bug en geen viewprobleem** — het is de vulling. Maar het
-raakt wel de planning: taak 21 is er niet op te testen, en bij livegang
-wil je dit niet zo hebben. Jij zei eerder dat de import op productie
-draait maar met lage aantallen; de meting laat zien dat het scherper ligt
-— er is volop data, alleen is die **verlopen**, niet schaars.
+| | vóór de fix | ná de fix |
+|---|---|---|
+| events (rijen) | 1025 | **1525** |
+| unieke events | 1010 | **1508** |
+| toekomstige events (uniek) | 4 | **6** |
+
+Jaar afgeleid uit weekdag+datum: **alles staat in 2026**. De import doet
+het dus weer, maar de aanwas is vrijwel volledig **historisch** (mei kwam
+er als maand bij, juni ging van 689 naar 1026). Vooruit blijft het dun:
+6 unieke events vanaf vandaag, en **nog steeds niets ná september**.
+
+De 6 toekomstige: Roermond (11 sep), Zeddam (13 sep), Valkenburg (18/20/25
+sep), Alblasserdam (19 sep).
+
+**Belangrijk: 2 van die 6 komen niet in de app terecht** — zie taak 28.
+`flutterflowmobiel1` is na de importfix onveranderd (4/3/1/0/3/0/0).
+
+---
+
+### Taak 28 · 15% van de events heeft geen categorie en is daardoor onzichtbaar
+
+Van de 1508 unieke events hebben er **231 (15%) `categorie: null`**. De zeven
+`flutterflowmobiel1`-displays filteren allemaal op categorie, dus zo'n event
+verschijnt **in geen enkele tab** — het bestaat alleen op zijn detailpagina,
+waar niemand komt.
+
+Nu al zichtbaar bij de nieuwe import: van de 6 toekomstige events vallen er
+**2** af:
+- *Ferme Jongus* (Zeddam, 13 sep) — `categorie: null`.
+- *Brocante Markt Klein Frankrijk* (Alblasserdam, 19 sep) — categorie
+  **"Tweedehands markt"**, en die valt onder geen enkele tab.
+
+Twee dingen om te beslissen:
+1. **Events zonder categorie**: een default meegeven bij import, of een
+   catch-all-tab/display die alles toont wat nergens in past. Anders groeit
+   dit mee met elke import.
+2. **Categorieën die geen tab hebben**: er komen 48 verschillende
+   categorieën voor in de data. Loop er even langs welke geen enkele display
+   raakt — "Tweedehands markt" is er in elk geval één.
+
+---
+
+### Taak 29 · HTML-entiteiten in titels en categorieën (21% van de events)
+
+`flutterflow_events` geeft ampersands en aanhalingstekens **HTML-escaped**
+terug, dus de app toont ze letterlijk:
+```
+"title": "Lina &amp; the Magic Music Box"
+"categorie": ["Hiphop/Rap/R&amp;B"]
+```
+**321 van de 1508 events geraakt**, verdeeld over `body` (234x), `title`
+(124x), `adres` (23x) en `categorie` (8x).
+
+**Dit is per view instelbaar en elders al goed**: dezelfde ampersand komt
+uit `flutterflowmobiel_establishments` gewoon ongeschonden
+(`"titel":"Brownies&downieS"`). Vergelijk de veldinstellingen van die twee
+views — er zit een verschil in de output-/rewrite-instelling van de
+tekstvelden. Een app-side fix wil je niet: dan moet je op elke plek
+decoderen.
+
+---
+
+### Taak 30 · Een node kan zichzelf vermenigvuldigen in `flutterflow_events`
+
+Nid **`214439`** ("Brocante Markt Klein Frankrijk") komt **14 keer identiek**
+terug: zelfde nid, zelfde datum, zelfde categorie. Nid `214441` 3x, `214420`
+3x. In totaal 17 overtollige rijen op 1525.
+
+Klein in het totaal, maar **groot in wat de gebruiker ziet**: van de 21
+toekomstige *rijen* zijn er maar 6 unieke events. Een lijst met 14 keer
+dezelfde markt eronder valt meteen op.
+
+Dit is het klassieke Views-patroon "een veld met meerdere waarden krijgt een
+eigen rij" — waarschijnlijk een multi-value veld (datum of taxonomie) waar
+*Multiple field settings → Display all values in the same row* uit staat.
+Kijk op node `214439` welk veld 14 waarden heeft. **Stond er al vóór de
+importfix** (toen 15 overtollige rijen), dus het is geen gevolg daarvan.
+
+---
 
 ### 🐞 Nieuw gevonden 2026-09-11 — categorielabel valt buiten de sliderkaart
 
@@ -129,9 +179,29 @@ een term **"Bezorgen"**.
    genoeg (`nid, titel, adres, plaats, logo, categorie` — nagemeten
    2026-09-10). Je hoeft `afhaalopties` dus niet toe te voegen; het
    filter doet het werk.
-5. Geef Claude daarna het **`display_id`** door, dan koppelt die het
-   drawer-item eraan (het horeca-overzicht accepteert al een
-   `display_id`-parameter).
+5. Geef Claude daarna het **`display_id`** door (= taak 26).
+
+⚠️ **Correctie 2026-09-11 op een eerdere aanname van Claude.** Ik schreef
+hierboven dat "het horeca-overzicht al een `display_id`-parameter accepteert".
+**Dat klopt niet** — ik haalde het door elkaar met `HomeUitgaantabelKaartComponent`,
+waar P1-44 die parameter wél heeft toegevoegd. De werkelijke stand van
+`horecagelegenhedenOverzichtCurrent` (ex-Copy3):
+- page parameter: **alleen `plaats`** (String), geen `display_id`;
+- de zes tabs roepen elk `fetchAlleHorecagelegenheden(<horcat>, plaats,
+  'services_1')` aan met een **hardcoded categorie-id** (17969, 17963, 34,
+  17965, 17967, 17968) én een hardcoded `'services_1'`.
+
+De custom action zelf heeft `displayId` wél al als derde argument en geeft
+'m door aan de API-call, dus de leiding ligt er — alleen de pagina vult 'm
+niet. **Gevolg: er is één app-stap extra nodig** die nog nergens stond:
+een page parameter `display_id` toevoegen en die op de zes aanroepen binden
+(met `services_1` als default, anders breken de bestaande routes).
+
+**En een ontwerpvraag die je eerst moet beantwoorden:** "Thuis bezorgen"
+levert één lijst op, terwijl deze pagina uit zes categorietabs bestaat. Wil
+je die tabs daar ook? Zo niet, dan is een aparte, simpele pagina (of
+dezelfde pagina met de tabbalk verborgen) waarschijnlijk netter dan deze
+pagina oprekken. Zeg wat je wilt, dan bouw ik het.
 
 ⚠️ **Lees eerst de meting hieronder — dit filter is nu niet te testen.**
 Op 2026-09-11 staan er in heel Nederland **4 toekomstige evenementen**: