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

TASKS: 94, 95 en 96 afgemeld; 97 overgedragen aan Bob met reden

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
bob 10 часов назад
Родитель
Сommit
fb7c31d67d
1 измененных файлов с 28 добавлено и 55 удалено
  1. 28 55
      TASKS.md

+ 28 - 55
TASKS.md

@@ -46,13 +46,7 @@ klopt sinds je 'm las.*
    2026-09-18 op Bob's vraag. Teksten NL+EN staan kant-en-klaar in het blok
    2026-09-18 op Bob's vraag. Teksten NL+EN staan kant-en-klaar in het blok
    hieronder; alleen nog plaatsen in de builder. Pak dit samen met taak 87 op,
    hieronder; alleen nog plaatsen in de builder. Pak dit samen met taak 87 op,
    die overlapt met de regel bij "Uw Horecagelegenheid".
    die overlapt met de regel bij "Uw Horecagelegenheid".
-9. **94 · P-Uitgaan toont op een tablet ÉÉN kolom** · Eigenaar: Claude — bezig (2026-09-18).** waar Home er drie toont —
-    `PagedListView` i.p.v. `StaggeredView`. Zie blok verderop.
-10. **95 · geen Empty List Widget** · Eigenaar: Claude — bezig (2026-09-18).** op P-Uitgaan en op de 6 provincie-horeca-tabs.
-    Zie blok verderop.
-11. **96 · AdBanner op de horeca-overzichten** · Eigenaar: Claude — bezig (2026-09-18).** (gemeente + provincie) — besluit
-    Bob 2026-09-18. Zie blok verderop, inclusief één openstaande scope-vraag.
-12. **97 · zoekveld ook op de provincie-horeca-pagina** · Eigenaar: Claude — bezig (2026-09-18).** — besluit Bob 2026-09-18.
+9. **97 · zoekveld ook op de provincie-horeca-pagina · Eigenaar: Bob** — besluit Bob 2026-09-18.
     Zie blok verderop.
     Zie blok verderop.
 
 
 ## 🎯 KLAARGEZET VOOR BOB — 2026-09-18 avond (door Claude, sessie "livegang-vooruitwerken")
 ## 🎯 KLAARGEZET VOOR BOB — 2026-09-18 avond (door Claude, sessie "livegang-vooruitwerken")
@@ -6555,58 +6549,37 @@ kranten-uitstraling.
 
 
 
 
 
 
-### 94 t/m 97 · Home, P-Uitgaan en de twee horeca-overzichten gelijktrekken
+### 97 · zoekveld ook op de provincie-horeca-pagina · Eigenaar: Bob
 
 
-*92 (maxLines op de P-Uitgaan-kaart) en 93 (slider-hoogte) zijn op 2026-09-18
-afgerond en gecommit (`3ed88e8`), daarom hieronder verwijderd.*
+*94 (StaggeredView 1/1/2/3 op P-Uitgaan), 95 (Empty List Widget op P-Uitgaan én
+de zes provincie-tabs) en 96 (AdBanner op beide horeca-overzichten) zijn op
+2026-09-19 afgerond en gecommit (`d9c4ccb`, `32843e9`).*
 
 
-*Aangemaakt 2026-09-18 na een vergelijking van de opmaak van Home, P-Uitgaan en
-de twee horeca-overzichten (alleen gelezen, niets gewijzigd).*
+**Wat er moet gebeuren.** `HorecagelegenhedenOverzichtProvinciePage` heeft geen
+zoekveld; de gemeente-versie (`horecagelegenhedenOverzichtCurrent`) wel. Verder
+zijn die twee pagina's nu gelijk (AppBar 80, 6 tabs, kolommen 1/1/2/3,
+`.take(100)`/`.take(1000)`, 6× Empty List Widget, AdBanner).
 
 
-**Eerst de navigatiestructuur, want zonder dit lees je de taken verkeerd.**
-"Gemeente" en "Provincie" zijn **menu-secties in `drawerComponent`, geen twee
-aparte pagina's**. Ze wijzen deels naar dezelfde pagina met een andere
-`plaats`-parameter:
+Over te nemen van de gemeente-versie:
+1. een `TextFormField` bovenaan de Column (boven de tabs), met een **On
+   Change**-actie die de page state `zoektermActiviteiten` vult;
+2. op **alle zes** de `StaggeredView`s de *Generate Dynamic Children*-waarde
+   omzetten naar `filterHorecagelegenheden(<lijst>, _model.textController.text,
+   …)` — kijk voor de exacte argumenten op regel ~554 van
+   `horecagelegenheden_overzicht_current_widget.dart` in een verse export.
 
 
-| menu-item | Gemeente-sectie | Provincie-sectie |
-|---|---|---|
-| Uitgaan / Activiteiten / Cultuur / Films / Jeugd | `PUitgaanPage` (`plaats` = `gemeenteSelectId`) | **dezelfde** `PUitgaanPage` (`plaats` = `provincieSelectId`) |
-| Horeca | `HorecagelegenhedenOverzichtCurrent` | `HorecagelegenhedenOverzichtProvinciePage` |
-| Thuis bezorgen | `ThuisBezorgen` | — |
-
-Gevolg: een wijziging op `PUitgaanPage` raakt **automatisch zowel gemeente als
-provincie**. Alleen bij horeca zijn het echt twee losse pagina's.
-
-**94 · P-Uitgaan toont op een tablet één kolom.**
-`p_uitgaantabel_kaart_component` gebruikt een `PagedListView`; Home en beide
-horeca-overzichten gebruiken een `PagedMasonryGridView` met Cross Axis Count
-1/1/2/3. Grootste zichtbare verschil, maar ook de grootste ingreep: volg het
-pagination-recept in `CLAUDE.md` (Infinite Scroll uit → `page`-binding
-verwijderen → Replace → StaggeredView → Infinite Scroll terug → `page` opnieuw
-binden aan *Next Page Index*), en let op Shrink Wrap + een begrensde hoogte.
-
-**95 · geen Empty List Widget.** Op `p_uitgaantabel_kaart_component` (0×) en op
-alle 6 tabs van `HorecagelegenhedenOverzichtProvinciePage` (0×, terwijl de
-gemeente-versie er 6 heeft). Bij een lege lijst zie je nu een leeg vlak zonder
-uitleg. Recept staat in `CLAUDE.md` (Empty List Widget → Image → Asset →
-`logo800px`, Center Image aan).
-
-**96 · AdBanner op de horeca-overzichten · besluit Bob 2026-09-18.**
-Nu staat er precies één `FlutterFlowAdBanner` in het project, op `PUitgaanPage`
-— die dus al zowel gemeente als provincie bedient. Toe te voegen op
-`HorecagelegenhedenOverzichtCurrent` en `HorecagelegenhedenOverzichtProvinciePage`.
-Gebruik dezelfde unit-id's als op `PUitgaanPage`
-(iOS `ca-app-pub-2431417692812232/5511582981`, Android `…/6657143691`) en
-dezelfde plaatsing (los blok met 15 px padding boven de lijst).
-⚠️ **Openstaande scope-vraag voor Bob:** hoort de banner ook op **Home** en op
-**ThuisBezorgen**? "Gemeente en provincie" sluit Home taalkundig uit (Home is de
-landelijke ingang), maar dat is een aanname — niet bouwen zonder antwoord.
-
-**97 · zoekveld ook op de provincie-horeca-pagina · besluit Bob 2026-09-18.**
-`HorecagelegenhedenOverzichtCurrent` heeft één `TextFormField` (zoekveld),
-`HorecagelegenhedenOverzichtProvinciePage` heeft er nul. Verder zijn die twee
-pagina's al gelijk (AppBar 80, 6 tabs, kolommen 1/1/2/3, `.take(100)`/`.take(1000)`
-identiek). Neem het zoekveld inclusief de filterketen over van de gemeente-versie.
+**⚠️ Waarom dit bij Bob ligt en niet bij Claude.** Stap 2 is een binding met een
+**custom function mét argumenten**, en die vraagt een **Confirm** in de
+Set-Variable-dialoog. Die knop reageert niet op browser-automation (bevestigd
+2026-09-18, 8 pogingen; Remove en Cancel in diezelfde rij werken wél). Erger:
+een half gebonden functie-argument **blokkeert de export van het hele project**
+(`Status: 400`), dus een mislukte poging legt ook andere sessies plat. Zes
+bindingen achter elkaar is dat risico niet waard.
+
+Bind `zoekterm` aan **Widget State → TextField** (`_model.textController.text`,
+non-nullable), **niet** aan de page state — die is `String?` en levert een `!`
+op die bij de eerste build crasht (het bekende P1-15-patroon). De page state
+blijft wel nodig als rebuild-trigger.
 
 
 **Los restpunt (geen eigen nummer, klein):** `PUitgaanPage` zet
 **Los restpunt (geen eigen nummer, klein):** `PUitgaanPage` zet
 `HeaderButtonsComponent` in de **`title`**-slot van de AppBar, terwijl élke
 `HeaderButtonsComponent` in de **`title`**-slot van de AppBar, terwijl élke