|
|
@@ -28,6 +28,21 @@ FlutterFlow-commit op `main`**, de commit-knop in het Version Control-paneel
|
|
|
reageerde niet op Claude's klik. `dart analyze` op de verse export: 0 errors.
|
|
|
Emulator-5556 heeft nu de profile-APK van die export + per-app-locale `nl-NL`.*
|
|
|
|
|
|
+### 🔴 IN UITVOERING 2026-09-16 (Claude, sessie "zoekveld + look&feel") — Eigenaar: Claude — bezig
|
|
|
+
|
|
|
+*Geclaimd om 00:0x, vóór het builder-werk begon. Bob's opdracht: "maak van het
|
|
|
+zoekveld een taak, doe dat direct; pas ook de look & feel suggesties aan; je kunt
|
|
|
+bij de browser". Raakt deze onderdelen — een andere sessie moet hier NIET
|
|
|
+tegelijk in bouwen:*
|
|
|
+
|
|
|
+- **`home` (pagina)** — zoekveld boven de tabs, chip-kleur.
|
|
|
+- **API Call `homeTabel`** — nieuwe query-variabele `zoek`.
|
|
|
+- **`HomeUitgaantabelKaartComponent`** — nieuwe parameter `zoekterm` + Backend Query.
|
|
|
+- **`HeaderButtonsComponent`** — knopvorm terugknop.
|
|
|
+- **`drawerComponent`** — ontbrekend icoon "Zoek stad" + Help-menu-item.
|
|
|
+
|
|
|
+*Niet geraakt (bewust): de twee aanmaakpagina's (P2-29, andere sessie).*
|
|
|
+
|
|
|
### 📋 Bob's 7 — de geordende lijst van 2026-09-15 (laat), max. 7, niets anders oppakken
|
|
|
|
|
|
*Stand bij afsluiten 2026-09-15 23:30: taak 1 af; 2 t/m 7 zijn voor morgen,
|
|
|
@@ -65,13 +80,13 @@ moeten interne sleutels zetten) — nodig vóór taak 3. Standaardzin voor morge
|
|
|
`android/key.properties`, want release staat op `signingConfigs.debug`).
|
|
|
iOS wel/niet in scope.
|
|
|
3. **P1-17 · Engelse vertalingen in één ronde** — pas ná P2-29 (aanmaak-
|
|
|
- pagina's) en P2-30 (`EventCurrent`), anders vertaal je twee keer. Omvang:
|
|
|
+ pagina's), anders vertaal je twee keer. Omvang:
|
|
|
134 lege + 99 gelijk aan NL. Zwaartepunt: `stadsactiviteitAanmaken`,
|
|
|
`uitgaansevenementAanmaken`, Home-chips, `Selectprovinciegemeente`.
|
|
|
Claude maakt vooraf de chip-functie taalonafhankelijk.
|
|
|
4. **Builder-opruimronde.** P2-7 (21 dode eenheden; begin met
|
|
|
`drawer_component_copy` + `kanweghorecagelegenheid_current_copy`),
|
|
|
- `HorecagelegenhedenOverzichtCopy3Copy`, `homeCopy` (zodra je P2-1 vertrouwt),
|
|
|
+ `HorecagelegenhedenOverzichtCopy3Copy`, `homeCopy` (het datumfilter is af en op een toestel getest, dus mag weg),
|
|
|
en P2-22 (twee Property Override-fouten). Daarna één export + `dart analyze`
|
|
|
door Claude.
|
|
|
5. **Drupal-opruimronde.** P2-25 stap 4/5 (geen `print`/`var_dump` in de
|
|
|
@@ -110,9 +125,7 @@ af. Wat er nog tussen nu en de store zit, in volgorde van "raakt de gebruiker":*
|
|
|
steeds geen `onTap` op. Display `services_2` op establishments is sinds
|
|
|
taak 38 klaar. Keuze Bob: knop verbergen tot de pagina er is, of Claude
|
|
|
bouwt de pagina (display_id-parameter + lijst) — kleine builder-taak.
|
|
|
-3. **`EventCurrent`-layout (P2-30)** — elke evenement-detailpagina; in
|
|
|
- uitvoering door de andere sessie van 15 sep, moet landen vóór livegang.
|
|
|
-4. **Store-gereedheid** (nog nergens genoteerd): `build.gradle` release-build
|
|
|
+3. **Store-gereedheid** (nog nergens genoteerd): `build.gradle` release-build
|
|
|
staat op `signingConfigs.debug`, geen `key.properties` — prima als de
|
|
|
Play-upload via FlutterFlow's eigen deploy loopt, anders een keystore
|
|
|
nodig. Play Console: privacy-policy-URL, Data-safety-formulier
|
|
|
@@ -120,40 +133,12 @@ af. Wat er nog tussen nu en de store zit, in volgorde van "raakt de gebruiker":*
|
|
|
`uitgaanskrant.com/nl/account-verwijderen`). `version 1.0.0+1`,
|
|
|
`targetSdk 36`, Crashlytics gekoppeld (`google-services.json` aanwezig).
|
|
|
iOS: `project.pbxproj` beweegt mee in de export — is iOS in scope?
|
|
|
-5. **Al op de lijst, blijft staan:** AdMob *Show Test Ads* uit · P1-30 rate
|
|
|
+4. **Al op de lijst, blijft staan:** AdMob *Show Test Ads* uit · P1-30 rate
|
|
|
limiting aan · P2-25 restant (stap 4/5, logging is al achter
|
|
|
`_custom_flutterflow_debug()`) · P2-7 opruimronde (4 `kanweg`-mappen komen
|
|
|
nog uit de export) · titel-trims · P2-22 (2 niet-blokkerende errors) ·
|
|
|
taak 56 na livegang · P2-26 zoekveld + P2-29 zodra PRIO 0 gedeployed is.
|
|
|
|
|
|
-### 🆕 P2-30 · `EventCurrent` (evenementpagina) · ✅ AFGEROND 2026-09-15 (Claude, commits `00e5fb2` + `fa50ff5`)
|
|
|
-
|
|
|
-Structuur én styling af, getest met een profile-build op telefoon (411 dp) en
|
|
|
-tablet (1280 dp): geen overflow, geen RenderFlex in logcat, analyze 0 errors.
|
|
|
-- Reuzenlogo weg (placeholder-`Image` `logo800px.png` stond nog in
|
|
|
- `FlexibleSpaceBar.background` terwijl de header in de `title`-slot zat).
|
|
|
-- Pagina scrolt; beide `Expanded`-kinderen eruit, `Row` → `Column` zodat de
|
|
|
- beschrijving op de telefoon niet meer buiten beeld valt, horeca-blok in een
|
|
|
- Container van 500 px (het heeft zelf een `Expanded`).
|
|
|
-- Knop "Alle evenementen" weg.
|
|
|
-- Witte kaart met `alternate`-rand 3 px, geen schaduw; `EvenementInfo` links
|
|
|
- uitgelijnd; "Entree:" 16 px en verborgen zonder prijs; carousel responsive
|
|
|
- 0.75/0.75/0.5/0.35.
|
|
|
-
|
|
|
-**Punt 5 uit de eerste inventarisatie was mijn fout, geen bug.** Ik dacht dat de
|
|
|
-horeca-carousel onderaan dezelfde foto's toonde als de event-carousel bovenaan.
|
|
|
-Nagemeten: het zijn twee losse velden uit twee losse endpoints — het event komt
|
|
|
-uit `flutterflow_events` (`$[0].fotos`), de zaak uit
|
|
|
-`flutterflowmobiel_establishment_info` (`$[:].fotoos`). Bimhuis (nid 75459) geeft
|
|
|
-`bimhuis.jpg` + `bimhuis2.jpg` terwijl het event één eigen foto heeft, en dat
|
|
|
-rendert ook zo. Wat ik zag was MEZRAB, waar de zaakfoto (`s3/mazreb.jpg`) en de
|
|
|
-eventfoto (`go_out/mazreb_27245.jpg`) dezelfde afbeelding zijn — twee keer
|
|
|
-geüpload in Drupal. Contentkwestie, niets aan de app of de call.
|
|
|
-
|
|
|
-*Kleine restpunten, puur cosmetisch:* het logo in de kaart staat gecentreerd met
|
|
|
-een grote witruimte erboven, en "Amsterdam" springt een paar pixels in (padding
|
|
|
-van de geneste Column).
|
|
|
-
|
|
|
### 🆕 P2-29 · Aanmaakpagina's `uitgaansevenementAanmaken` + `stadsactiviteitAanmaken` — verbeterronde · Eigenaar: de sessie die op deze twee pagina's zit (Bob 2026-09-15 avond: "een andere sessie is bezig met de aanmaakpagina's") — niet nog een sessie erbij
|
|
|
|
|
|
Bob's akkoord 2026-09-15 op blok A, daarna blok B. Alles hieronder is
|
|
|
@@ -500,55 +485,6 @@ tonen; alternatief is default "Amsterdam", te wisselen in dezelfde binding).
|
|
|
Verifiëren op telefoonformaat (393 dp): hamburger + terugknop + logo + naam
|
|
|
moeten op één regel passen, ook bij "'s-Hertogenbosch".
|
|
|
|
|
|
-**P2-1 · Datumfilter Vandaag / Dit weekend / Deze week · ✅ AFGEROND 2026-09-15
|
|
|
-(Drupal: Bob; app-kant: Claude, commits `f92c87c` + `4de72eb`) — werkend getest
|
|
|
-op een toestel.**
|
|
|
-
|
|
|
-*Wat er staat, export-geverifieerd:*
|
|
|
-- Drupal: `datum_van` / `datum_tot` op alle zeven `flutterflowmobiel1`-displays,
|
|
|
- formaat `yyyy-MM-dd HH:mm:ss`, lokale tijd, beide grenzen inclusief. Een lege
|
|
|
- waarde = geen filter. Opbrengst landelijk op Uitgaan:
|
|
|
- **1525 → 637 (deze week) → 263 (dit weekend) → 37 (vandaag)**.
|
|
|
-- Custom functions `filterDatumVan` / `filterDatumTot`: mappen de Nederlandse
|
|
|
- chip-labels (`Vandaag` / `Dit weekend` / `Deze week`) op de interne sleutels
|
|
|
- en geven de grens terug; elke andere waarde, ook leeg, geeft `''` = geen
|
|
|
- filter. De tot-grens is `23:59:59`, niet `00:00:00`.
|
|
|
-- API Call `homeTabel` + component `HomeUitgaantabelKaartComponent`: parameters
|
|
|
- `datumVan` / `datumTot` tot in de Backend Query.
|
|
|
-- App State `datumFilter` (String, niet persisted, default leeg = Alles).
|
|
|
-- Home: een **ChoiceChips** (Alles / Vandaag / Dit weekend / Deze week, initieel
|
|
|
- Alles) **tussen de slider en de TabBar**; On Selected → Update App State
|
|
|
- `datumFilter`, update type "Rebuild Current Page".
|
|
|
-- Alle **5** `HomeUitgaantabelKaartComponent`-instanties (services_3 t/m _7):
|
|
|
- `datumVan` = `filterDatumVan(datumFilter)`, `datumTot` =
|
|
|
- `filterDatumTot(datumFilter)`, en **Value Key = `datumFilter`** op de
|
|
|
- instantie (niet binnenin het component — de `pagingController` zit in het
|
|
|
- `_model` van het component, dus alleen een key op de instantie vervangt het
|
|
|
- hele model en dwingt een verse eerste pagina af).
|
|
|
-- `homeCopy` staat als vangnet klaar (Bob's verzoek vóór het Home-werk).
|
|
|
- **Opruimen mag zodra je tevreden bent — dat is een taak voor Bob.**
|
|
|
-
|
|
|
-**Het herladen bij een filterwissel is opgelost met een custom action**
|
|
|
-(`herlaadLijsten`, commit `4de72eb`). Nodig omdat een Value Key op de
|
|
|
-component-instantie de `pagingController` níét reset — het componentmodel is
|
|
|
-pagina-eigendom (`wrapWithModel` + `disposeOnWidgetDisposal = false`), dus een
|
|
|
-nieuwe `State` pakt hetzelfde model met alle al geladen pagina's terug. Er is
|
|
|
-geen builder-actie die `pagingController.refresh()` genereert, en een
|
|
|
-`Navigate To` naar dezelfde pagina helpt niet (`nav.dart` gebruikt
|
|
|
-`key: state.pageKey`). De action wacht op de rebuild die de nieuwe
|
|
|
-`datumVan`/`datumTot` doorgeeft, loopt dan de element-tree af en roept
|
|
|
-`refresh()` aan op elke gemonteerde `PagedMasonryGridView`. Hij staat als
|
|
|
-tweede actie op de ChoiceChips, ná de Update App State.
|
|
|
-
|
|
|
-*Op de telefoon-emulator getest met een profile-build:* Alles → Dit weekend
|
|
|
-geeft meteen zaterdag 19 sep, Vandaag geeft dinsdag 15 sep, en een al geladen
|
|
|
-tab (Activiteiten) ververst ook in plaats. De slider blijft staan en er is geen
|
|
|
-paginaherlaad. Activiteiten/Vandaag is terecht leeg — nagemeten: `services_4`
|
|
|
-geeft vandaag 0 items, `services_3` er 9.
|
|
|
-
|
|
|
-*Losse opmerking, geen taak:* `homeCopy` staat er nog als vangnet; weg mag
|
|
|
-zodra je tevreden bent (Claude gooit niets weg).
|
|
|
-
|
|
|
**P2-26 · Zoekveld op de evenementenlijsten · ⚠️ HERZIEN 2026-09-15 (Claude,
|
|
|
gemeten) — het horeca-patroon kan hier NIET, dit begint bij jou in Drupal.**
|
|
|
De aanname "zelfde patroon als horeca" gaat niet op. Horeca laadt zijn hele
|
|
|
@@ -564,7 +500,7 @@ begaanbare weg, en het zou de paginering die er nu netjes staat weggooien.
|
|
|
pakken). Geef het een eigen filter-identifier (bv. `zoek`); daarna is de
|
|
|
app-kant klein: één query-variabele op de API Call + een `TextField` boven de
|
|
|
lijst dat bij On Change de page state zet, gevolgd door de bestaande custom
|
|
|
-action **`herlaadLijsten`** (gebouwd voor P2-1) — die ververst de
|
|
|
+action **`herlaadLijsten`** (gebouwd voor het datumfilter op Home) — die ververst de
|
|
|
`pagingController`, dus dat stuk hoeft niet opnieuw bedacht te worden.
|
|
|
Let op de 2000 ms `EasyDebounce` op On Change (bekend, niet instelbaar) — bij
|
|
|
een server-side zoekopdracht is die vertraging juist prettig.
|
|
|
@@ -717,9 +653,11 @@ leg je een halfoude staat vast.
|
|
|
### 🧹 Voor Bob — opruimen op productie (testdata van 13 sep)
|
|
|
|
|
|
Alle drie door Claude aangemaakt tijdens de P2-15-tests, met toestemming:
|
|
|
-- **nid 220906** — "TEST met foto Claude 13sep - niet echt" (gepubliceerd
|
|
|
- evenement bij Café de Vriendschap), plus de drie geüploade bestanden
|
|
|
- **fid 5509170 / 5509288 / 5509390** in `files/evenementen_uploads/`.
|
|
|
+- **nid 220906** — ✅ **node al weg** (nagemeten 2026-09-16 op productie:
|
|
|
+ `/node/220906` geeft 404, een bestaande-maar-ongepubliceerde geeft 403).
|
|
|
+ De drie geüploade bestanden **fid 5509170 / 5509288 / 5509390** in
|
|
|
+ `files/evenementen_uploads/` zijn niet via HTTP te controleren — nog wél
|
|
|
+ na te lopen met drush.
|
|
|
- **nid 220276** — "TEST stadsactiviteit Claude 13sep - niet echt"; staat
|
|
|
ongepubliceerd in de redactiewachtrij.
|
|
|
- Nid 217916 en 219913 zijn al weg.
|
|
|
@@ -3855,25 +3793,6 @@ Omvang op de huidige agenda: 2 van 235 nodes.
|
|
|
|
|
|
## P2 — features & concept, na livegang
|
|
|
|
|
|
-**P2-1 · Eigenaar: Bob (Drupal/views-werk; app-werk pas daarna).**
|
|
|
-Datum-filter Vandaag / Dit weekend / Deze week. **Uitgezocht 2026-09-05
|
|
|
-(Claude, live `curl`) — dit kan niet in de app alleen:**
|
|
|
-- **Er is geen exposed datumfilter.** Getest op
|
|
|
- `flutterflow_events.json` met `date`, `datum`, `field_date_value`,
|
|
|
- `date_filter`, `date_filter[value][date]` — alle 25 items bleven
|
|
|
- identiek. Controle met een verzonnen `onzin_param=123` gaf hetzelfde
|
|
|
- resultaat, dus de view negeert onbekende parameters stil: "geen
|
|
|
- verschil" bewijst hier écht dat de filter ontbreekt.
|
|
|
-- **Client-side filteren is geen alternatief.** (1) `datum` is een
|
|
|
- geformatteerde string **zonder jaartal** (`"woensdag 9 sep, 20:00"` op
|
|
|
- `/nl/`, `"Wednesday 9 Sep, 20:00"` op `/en/`) — parsen is fragiel en
|
|
|
- rond de jaarwisseling ambigu. (2) De lijst is gepagineerd op 25 items,
|
|
|
- dus je kunt alleen filteren binnen de pagina die je toevallig binnen
|
|
|
- hebt.
|
|
|
-- **Benodigd:** een exposed date-filter (of aparte displays voor
|
|
|
- vandaag/weekend/week) op `flutterflowmobiel1`. Pak dit samen met P1-42
|
|
|
- hieronder — dat is dezelfde view en dezelfde sorteer/filter-laag.
|
|
|
-
|
|
|
**P1-42 · Eigenaar: Bob (Drupal/views).** **De uitgaanslijsten tonen
|
|
|
overwegend verlopen evenementen.** Gevonden 2026-09-05 (Claude, live
|
|
|
`curl` tijdens P2-1-onderzoek), geldt voor `flutterflowmobiel1`
|
|
|
@@ -3893,9 +3812,10 @@ services_1/2/3 — de views waar Home zijn tabs mee vult.
|
|
|
- **Fix, één ingreep in de view:** filter `datum >= vandaag` én sorteer
|
|
|
**oplopend** op de datum-veldwaarde i.p.v. `created DESC`. Dan staat
|
|
|
het eerstvolgende evenement bovenaan en loopt scrollen de toekomst in.
|
|
|
-- **Waarom dit vóór P2-1 moet:** een filter "Vandaag / Dit weekend /
|
|
|
- Deze week" op een lijst die grotendeels uit verleden bestaat en op
|
|
|
- aanmaakdatum sorteert, levert onvoorspelbare resultaten op.
|
|
|
+- **Stand 2026-09-15:** het datumfilter (Vandaag / Dit weekend / Deze
|
|
|
+ week) is inmiddels gebouwd en werkt, en de master van
|
|
|
+ `flutterflowmobiel1` filtert `>= -2 hours` en sorteert oplopend. Dit
|
|
|
+ punt gaat dus nog alleen over de vraag of dat overal doorwerkt.
|
|
|
- ⚠️ **Nog te verifiëren door Bob:** of dit ook echt zo in de app oogt
|
|
|
(gemeten op de API, niet op een toestel), en of de horeca-/
|
|
|
favorieten-lijsten dezelfde sortering hebben.
|