ソースを参照

TASKS: Bob's besluiten 2026-09-19 (P2-45b → Alles, 88A fid-hergebruik, 87 deel 1 en taak 28 af, P2-42 nameten)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bob 9 時間 前
コミット
1e85102dc0
1 ファイル変更24 行追加71 行削除
  1. 24 71
      TASKS.md

+ 24 - 71
TASKS.md

@@ -23,6 +23,7 @@ oppakken.
 | **87** | Klikbare link naar `/nl/ondernemers` — **bezig (Claude, samen met 91)** | Eén `Text` in linkstijl onder de horeca-dropdown; hoort bij 91 |
 | **87** | Klikbare link naar `/nl/ondernemers` — **bezig (Claude, samen met 91)** | Eén `Text` in linkstijl onder de horeca-dropdown; hoort bij 91 |
 | ~~88B~~ | Pagina "Mijn aanmeldingen" | ⚠️ **Al geclaimd** door de sessie 'taken-B1-B7' — niet oppakken |
 | ~~88B~~ | Pagina "Mijn aanmeldingen" | ⚠️ **Al geclaimd** door de sessie 'taken-B1-B7' — niet oppakken |
 | **65** | Functionele doorloop van de release-build | Build draait al op emulator-5556; de checklist is nog niet afgelopen |
 | **65** | Functionele doorloop van de release-build | Build draait al op emulator-5556; de checklist is nog niet afgelopen |
+| **P2-45b** | Datumkiezer annuleren → terug naar "Alles" (Bob's besluit 2026-09-19) | In de On-Pressed-keten van de kalenderknop op Home: de else-tak (`datePicked = getCurrentTimestamp`) vervangen door Update App State `datumFilter` → Clear Value, en de daaropvolgende `datumFilter = format(datePicked)` alleen in de gekozen-tak laten lopen. Nu: `home_widget.dart` r.401-410 |
 | **P2-45c** | Chiplabels op Home korter | Ze wrappen met de kalenderknop erbij naar twee regels |
 | **P2-45c** | Chiplabels op Home korter | Ze wrappen met de kalenderknop erbij naar twee regels |
 | **76** | Linkerpadding op de horeca-agendakaart | Klein, cosmetisch |
 | **76** | Linkerpadding op de horeca-agendakaart | Klein, cosmetisch |
 | **G0.6** | Play-screenshots schieten | Browserloos op beide AVD's, ±10 min — zeg het en het gebeurt |
 | **G0.6** | Play-screenshots schieten | Browserloos op beide AVD's, ±10 min — zeg het en het gebeurt |
@@ -34,11 +35,10 @@ oppakken.
 | **B1** | **App-icoon: PNG 1024×1024, transparant, beeldmerk op ±60 %** | 🔴 Blokkeert. Op een toestel staat nu "itgaanskrant.co" |
 | **B1** | **App-icoon: PNG 1024×1024, transparant, beeldmerk op ±60 %** | 🔴 Blokkeert. Op een toestel staat nu "itgaanskrant.co" |
 | **G** | Google Play-checklist G0–G4 | Volledige checklist hieronder, afvinkbaar |
 | **G** | Google Play-checklist G0–G4 | Volledige checklist hieronder, afvinkbaar |
 | **66** | Crashlytics: Firebase-console nakijken + Crashtest-knop opruimen | App-kant is bewezen (rapport met status 200); alleen de console-check en het opruimen zijn nog van jou |
 | **66** | Crashlytics: Firebase-console nakijken + Crashtest-knop opruimen | App-kant is bewezen (rapport met status 200); alleen de console-check en het opruimen zijn nog van jou |
-| **P2-42** | Agenda als eerste tab op de zaakpagina | Besluit + uitvoering; slepen lukt Claude niet |
-| **P2-45b** | Annuleren van de datumkiezer zet het filter op vandaag | Besluit: laten of fixen |
+| **P2-42** | Agenda als eerste tab op de zaakpagina | Bob meldt 2026-09-19 "al gedaan", maar een export van vanochtend toont Agenda nog als 4e tab. Na sync opnieuw nameten. |
 | **P1-17** | Engelse vertalingen, één ronde | 46 velden op de twee aanmaakpagina's + 3 losse |
 | **P1-17** | Engelse vertalingen, één ronde | 46 velden op de twee aanmaakpagina's + 3 losse |
 | **Bij livegang** | Zes schakelaars en opruimklussen | Eigen blok hieronder |
 | **Bij livegang** | Zes schakelaars en opruimklussen | Eigen blok hieronder |
-| **Drupal** | P1-42, P2-24, taak 28/32, taak 56, P2-25 | Eigen blokken hieronder |
+| **Drupal** | P1-42, P1-45, P2-24 B/F, taak 56, P2-25 | Eigen blokken hieronder |
 
 
 ---
 ---
 #
 #
@@ -220,7 +220,7 @@ optioneel.
 
 
 #
 #
 
 
-### 🆕 87 · Uitleggen waar je een horecagelegenheid aanmaakt — kan alleen via de website · Eigenaar: Bob (helppagina-link, = B3), Claude (app-kant — de sectieregel staat er al, alleen de klikbare link ontbreekt nog; zie taak 91)
+### 🆕 87 · Uitleggen waar je een horecagelegenheid aanmaakt — kan alleen via de website · Eigenaar: Claude (app-kant — de sectieregel staat er al, alleen de klikbare link ontbreekt nog; zie taak 91). **Deel 1 (helppagina-link, Drupal) is af — Bob 2026-09-19.**
 
 
 Bob 2026-09-17: *"we moeten nog ergens kwijt dat we uitleggen waar je een
 Bob 2026-09-17: *"we moeten nog ergens kwijt dat we uitleggen waar je een
 horecagelegenheid kunt aanmaken. Kan alleen via de website."* Nu staat dat
 horecagelegenheid kunt aanmaken. Kan alleen via de website."* Nu staat dat
@@ -295,10 +295,12 @@ erop staat, niet of het al goedgekeurd is, en niets hergebruiken.
   `website` verpakt in een `<a href=...>`-tag, en er zit **geen entree-tid** in.
   `website` verpakt in een `<a href=...>`-tag, en er zit **geen entree-tid** in.
   Daar is geen formulier mee te vullen.
   Daar is geen formulier mee te vullen.
 
 
-  **Open vraag voor Bob:** mag een kloon dezelfde `fid`'s hergebruiken (dan moet
-  `file_usage_add()` meelopen voor de nieuwe node), of moet de gebruiker opnieuw
-  uploaden? Hergebruiken is voor de gebruiker veel prettiger — dat is juist de
-  helft van de winst van klonen.
+  **✅ Besluit Bob 2026-09-19: een kloon hergebruikt dezelfde `fid`'s.** De
+  gebruiker hoeft dus niet opnieuw te uploaden. Aan de Drupal-kant regelt
+  `file_field_insert()`/`file_field_update()` de `file_usage`-registratie bij
+  `node_save()` zelf zodra de fids op het veld staan; alleen controleren dat
+  `_custom_evenement_create()` bestaande (permanente) fids accepteert en niet
+  op `status = 0` filtert.
 
 
 **B · App (Claude, builder)**
 **B · App (Claude, builder)**
 
 
@@ -345,17 +347,21 @@ bouw eerst evenementen helemaal af en kopieer daarna pas, niet allebei tegelijk.
 ### 🔧 Kleine open restpunten (app)
 ### 🔧 Kleine open restpunten (app)
 
 
 - **P2-42 · `HorecagelegenheidCurrent`: Agenda als eerste tab · Eigenaar: Bob
 - **P2-42 · `HorecagelegenheidCurrent`: Agenda als eerste tab · Eigenaar: Bob
-  (besluit + uitvoering).** Agenda staat nu als 4e tab. **Tabs herordenen lukt
+  (besluit + uitvoering).** ⚠️ Bob meldde 2026-09-19 "al gedaan"; verse export
+  van diezelfde ochtend toont nog Info / Links / Bezorgen / Agenda. Nameten na
+  zijn volgende sync; klopt het dan, dit punt schrappen. Agenda staat nu als 4e tab. **Tabs herordenen lukt
   niet via de widget tree** (bewezen 2026-09-17): een `Tab`-node op de
   niet via de widget tree** (bewezen 2026-09-17): een `Tab`-node op de
   `TabBar`-rij droppen geeft *"Tab can only be added to TabBar"*, en op een
   `TabBar`-rij droppen geeft *"Tab can only be added to TabBar"*, en op een
   andere Tab-rij droppen verplaatst alleen de Tab en niet zijn TabBar Page,
   andere Tab-rij droppen verplaatst alleen de Tab en niet zijn TabBar Page,
   waarna het canvas breekt. Opties: (a) jij probeert het slepen in je eigen
   waarna het canvas breekt. Opties: (a) jij probeert het slepen in je eigen
   browser, (b) de tab blijft achteraan, (c) Claude bouwt de inhoud van de
   browser, (b) de tab blijft achteraan, (c) Claude bouwt de inhoud van de
   tabben over — dat laatste is fors werk. Zeg welke.
   tabben over — dat laatste is fors werk. Zeg welke.
-- **P2-45b · annuleren van de datumkiezer · Eigenaar: Bob (besluit) / Claude
-  (uitvoering).** FlutterFlow genereert het zo: annuleer je de kiezer nádat je
-  eerder een datum koos, dan valt het filter terug op vandaag in plaats van op
-  de vorige keuze. Eén conditie erbij lost het op; laten mag ook.
+- **P2-45b · annuleren van de datumkiezer · Eigenaar: Claude (besluit
+  Bob 2026-09-19: terugvallen op de standaard "Alles", niet op vandaag).**
+  Nu (`home_widget.dart` r.393-410): kiezer geannuleerd nádat er eerder een
+  datum gekozen was → `datePicked = getCurrentTimestamp` → `datumFilter` =
+  vandaag. Gewenst: annuleren → `datumFilter` leeg (= chip "Alles"), en de
+  `dateTimeFormat`-stap alleen uitvoeren als er echt een datum gekozen is.
 - **P2-45c · chiplabels korter.** De vier chiplabels wrapten met het zoekicoon
 - **P2-45c · chiplabels korter.** De vier chiplabels wrapten met het zoekicoon
   al naar twee regels; met de kalenderknop erbij is er nóg minder ruimte.
   al naar twee regels; met de kalenderknop erbij is er nóg minder ruimte.
   Suggestie: "Vandaag / Weekend / Deze week / Alles".
   Suggestie: "Vandaag / Weekend / Deze week / Alles".
@@ -1011,65 +1017,12 @@ zelf een **`EasyDebounce` van 2000 ms** en die is nergens instelbaar (geen
 niet). Live merkbaar: de lijst ververst ~2 s nadat je stopt met typen. Werkt
 niet). Live merkbaar: de lijst ververst ~2 s nadat je stopt met typen. Werkt
 correct, voelt traag.
 correct, voelt traag.
 
 
-### Taak 28 · 12% van de komende events komt in geen enkele tab — met de lijst erbij
+### ✅ Taak 28 · events zonder categorie — AF (Bob, 2026-09-19)
 
 
-Volledig doorgemeten 2026-09-12 20:50, terwijl je import liep (2963 unieke
-events op dat moment). Methode: alle zeven displays volledig gepagineerd en de
-nids vergeleken met de complete voorraad uit `flutterflow_events`.
-
-| | aantal |
-|---|---|
-| komende events (start ≥ nu − 2 uur) | **58** |
-| zichtbaar in minstens één tab | 51 |
-| **in geen enkele tab** | **7 (12%)** |
-
-**De zeven, om na te lopen:**
-```
-13 sep 14:00  nid 214441  Zeddam        Ferme Jongus – Nederpop op volle kracht!
-13 sep 15:30  nid 214463  Den Haag      Dr Ewa Woydyłło (Unique Performance)
-15 sep 20:30  nid 214456  Rotterdam     She Her Her Hers
-15 sep 21:00  nid 214455  Rotterdam     Renny Conti
-19 sep 09:00  nid 214439  Alblasserdam  Brocante Markt Klein Frankrijk
-20 sep 13:30  nid 214474  Almere-Stad   Het Danspaleis
-23 sep 20:30  nid 214476  Amersfoort    Feest
-```
-**Zes daarvan hebben helemaal geen categorie**; de zevende (`214439`) heeft
-*Tweedehands markt*, en dat is de enige categorie in de hele voorraad die geen
-enkele display raakt.
-
-**Categorie → tab, zoals het nu feitelijk werkt** (gemeten, niet uit de
-viewconfig afgelezen):
-
-| categorie | komt in |
-|---|---|
-| Voorstelling (41x) | Uitgaan, Cultuur & Info, Films |
-| Theater (35x) | Uitgaan, Cultuur & Info, Films, Jeugd |
-| Muziek (28x) | Uitgaan, Cultuur & Info |
-| Cabaret (21x), Toneel (9x), Theatercollege (3x), Circus (3x), Stand-up comedy (3x) | alleen Cultuur & Info |
-| Kindvriendelijk (16x), Jeugd (12x), Muziektheater (4x) | Cultuur & Info, Jeugd |
-| Dansvoorstelling (4x), Film (4x) | Cultuur & Info, Films |
-| Live/Concert (8x), Pop (2x), Rock/Punk (2x), Dance/House (2x) | alleen Uitgaan |
-| **Tweedehands markt (1x)** | **nergens** |
-
-Goed nieuws: er is dus maar **één** categorie zonder tab. Het echte lek zijn de
-events zónder categorie.
-
-**Twee dingen te beslissen:**
-1. **Events zonder categorie** — geef ze bij import een default, of maak één
-   display die alles toont wat nergens in past. Zonder dat groeit dit gewoon
-   mee met elke import.
-2. **"Tweedehands markt"** — hang 'm aan een bestaande tab (Cultuur & Info ligt
-   voor de hand) of accepteer dat die ene node onzichtbaar blijft.
-
-⚠️ **Let op bij het narekenen:** classificeer op **datum + tijd**, niet op datum
-alleen. Ik telde eerst 10 onzichtbare events; drie daarvan waren van vandaag en
-al begonnen (10:00 en 14:00, gemeten om 20:50) en worden dus terecht door het
-`>= -2 hours`-filter weggelaten. Op datum alleen lijken die ten onrechte
-"toekomstig".
-
-📌 `services_4` (Activiteiten) staat op 0 en dekt geen enkele categorie — dat
-zijn stadsactiviteiten, die worden handmatig aangemaakt en niet geïmporteerd.
-Geen bug.
+Bob meldt de Drupal-kant gefixt (events zonder categorie + "Tweedehands
+markt"). Nog niet door Claude nagemeten; het meetrecept (alle zeven displays
+pagineren, nids naast `flutterflow_events` leggen, classificeren op datum+tijd)
+staat in `CLAUDE.md`. Bij de volgende contentmeting even meenemen.
 
 
 ## 📚 Referentie — geen taak, wél lezen vóór je iets opnieuw onderzoekt
 ## 📚 Referentie — geen taak, wél lezen vóór je iets opnieuw onderzoekt