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

Taak 113 af: filterbalk werkt op provincie- en gemeentepagina

Slider-conditie ook op PUitgaanPage gezet, zodat het gedrag gelijk is aan Home.
Op toestel bewezen: chips en zoekveld filteren echt (qqzzxx -> empty widget).
Restpunten staan nu als taak 114 op Bob's naam.

CLAUDE.md: --route met een & in de query faalt op shell-quoting.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 23 часов назад
Родитель
Сommit
8fa5f9b14b
2 измененных файлов с 15 добавлено и 1 удалено
  1. 14 0
      CLAUDE.md
  2. 1 1
      TASKS.md

+ 14 - 0
CLAUDE.md

@@ -1716,6 +1716,20 @@ is veel toleranter en draait vaak door terwijl `export-code` weigert —
 "de build doet het toch gewoon" is dus geen bewijs dat de teller
 "de build doet het toch gewoon" is dus geen bewijs dat de teller
 onschuldig is.
 onschuldig is.
 
 
+**⚠️ `flutter run --route` met MEER dan één query-parameter faalt op de `&`.**
+Bevestigd 2026-09-20: `--route "/pUitgaanPage?plaats=28695&services=services_3"`
+bouwt en installeert netjes, maar de launch crasht met
+`ProcessException: exit code 127` en `/system/bin/sh: com.uitgaanskrant.app/…
+MainActivity: inaccessible or not found` — Flutter quote de route niet in zijn
+eigen `adb shell am start`, dus de shell op het toestel knipt bij de `&`.
+**Werkende omweg:** laat de build zijn werk doen (de APK staat dan al
+geïnstalleerd) en start hem daarna zelf met een deep link waarin de hele URL
+tussen enkele quotes staat:
+```
+adb -s <device> shell "am start -a android.intent.action.VIEW -d 'uitgaanskrant://uitgaanskrant.com/pUitgaanPage?plaats=28695&services=services_3'"
+```
+Eén parameter in `--route` gaat wél goed; het is specifiek de `&`.
+
 **Een pagina die alleen via een page-parameter bereikbaar is, test je zonder
 **Een pagina die alleen via een page-parameter bereikbaar is, test je zonder
 de builder met een profile-build + `--route`.** Recept dat 2026-09-05 in één
 de builder met een profile-build + `--route`.** Recept dat 2026-09-05 in één
 keer werkte voor `HorecagelegenhedenOverzichtCopy3`:
 keer werkte voor `HorecagelegenhedenOverzichtCopy3`:

+ 1 - 1
TASKS.md

@@ -31,7 +31,7 @@ Google Play en één doorloop die alleen Bob kan doen.
 | **112** | `SelectStateDropDownComponent`: hartje bij tikken ook in het favorietenlijstje | **Eigenaar: Bob (of Claude in een eigen sessie).** De laadkant is af (2026-09-20): bij het openen vult `favorieteGemeenteIds` zich uit `favorieten_gemeenten.json`, dus het hartje klopt meteen. Wat nog ontbreekt: tik je op het hartje, dan verandert het lijstje eronder pas na opnieuw openen. Nodig: één custom function `favorietenLijstToggle(lijst, nid, titel, parentNid, parentTitel)` die het item toevoegt of verwijdert, plus in beide IconButton-ketens (If- én Else-tak van de `ConditionalBuilder`) een `Update Component State → favorieteGemeentenLijst` met die functie. ~10 argument-bindingen; kan ook met een extra `drupalRequest`-GET (6 argumenten per tak) i.p.v. de functie |
 | **112** | `SelectStateDropDownComponent`: hartje bij tikken ook in het favorietenlijstje | **Eigenaar: Bob (of Claude in een eigen sessie).** De laadkant is af (2026-09-20): bij het openen vult `favorieteGemeenteIds` zich uit `favorieten_gemeenten.json`, dus het hartje klopt meteen. Wat nog ontbreekt: tik je op het hartje, dan verandert het lijstje eronder pas na opnieuw openen. Nodig: één custom function `favorietenLijstToggle(lijst, nid, titel, parentNid, parentTitel)` die het item toevoegt of verwijdert, plus in beide IconButton-ketens (If- én Else-tak van de `ConditionalBuilder`) een `Update Component State → favorieteGemeentenLijst` met die functie. ~10 argument-bindingen; kan ook met een extra `drupalRequest`-GET (6 argumenten per tak) i.p.v. de functie |
 
 
 
 
-| **113** | Filterbalk (zoek + datum + chips) ook op `PUitgaanPage` | **Eigenaar: Claude — bezig (2026-09-20), bouw af, device-test loopt.** `PUitgaanPage` bedient **provincie én gemeente** (10 drawer-ingangen) — één keer bouwen dekte beide. Drupal was al klaar (gemeten: `townid` + `datum_van`/`datum_tot`/`zoek` op plaats-, gemeente- én provincie-tid, mét tegencontrole). **✅ `UitgaanstabelCall`**: `datum_van`/`datum_tot`/`zoek` als variabele + query-parameter (lege defaults). **✅ `PUitgaantabelKaartComponent`**: `datumVan`/`datumTot`/`zoekterm` (Required uit → `String?`), gebonden in de Backend Query; `page` intact. **✅ Home**: `Row` + `TextField` gewrapt in een `Column`, via *Convert to Component* → **`FilterBalkComponent`**; App State **`zoekOpen`** stuurt het zoekveld én de slider (die laatste via *Apply Opposite Statement*), zoekknop → *Update App State* → **Toggle Value**, **Update Page on Changes** aan. **✅ `PUitgaanPage`**: component tussen slider en advertentie, `datumVan`/`datumTot` via `filterDatumVan`/`filterDatumTot(FFAppState().datumFilter)` en `zoekterm` doorgegeven, Update Page on Changes aan. Elke stap geverifieerd met verse export + `dart analyze` (**0 errors**). **Restpunten voor Bob:** (a) `parameter1` op `FilterBalkComponent` ontstond automatisch bij de conversie en wordt nergens gelezen — mag weg; (b) page state `zoekOpen` op Home is daarmee overbodig; (c) App State **`zoekActief`** (Boolean) bestond al met **0 gebruikers**; (d) `FilterBalkKanweg` + `homeCopy` + `PUitgaanPageCopy` op de opruimlijst; (e) er staat een niet-van-mij Issue *"Custom functions need to be checked for errors"* — één klik in het Issues-paneel |
+| **114** | Opruimen na de filterbalk-ombouw | **Eigenaar: Bob.** Restjes van taak 113 (filterbalk op `PUitgaanPage`, afgerond 2026-09-20): (a) component-parameter **`parameter1`** op `FilterBalkComponent` ontstond automatisch bij *Convert to Component* en wordt nergens gelezen — mag weg, en daarmee ook de meegegeven waarde op Home en `PUitgaanPage`; (b) **page state `zoekOpen` op Home** is overbodig geworden (de App State-versie stuurt alles); (c) App State **`zoekActief`** (Boolean) bestond al vóór deze taak en heeft **0 gebruikers**; (d) wegwerp: component **`FilterBalkKanweg`** + pagina's **`homeCopy`** en **`PUitgaanPageCopy`**. Geen van alle blokkeert iets — `dart analyze` geeft 0 errors |
 
 
 ## 👤 BOB — OPEN, in volgorde van wat de livegang blokkeert
 ## 👤 BOB — OPEN, in volgorde van wat de livegang blokkeert