|
|
@@ -19,8 +19,6 @@ oppakken.
|
|
|
|
|
|
| # | Taak | Kort |
|
|
|
|---|---|---|
|
|
|
-| **91** | Uitleg op de aanmaakpagina's — **bezig (Claude, sessie 2026-09-19 taak 91/87)** | Pagina A op 3 restpunten na af; pagina B 4 van 7 secties open. Volledig recept + teksten hieronder. **Begin hier.** |
|
|
|
-| **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 |
|
|
|
| **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 |
|
|
|
@@ -43,218 +41,6 @@ oppakken.
|
|
|
---
|
|
|
#
|
|
|
|
|
|
-### 🔄 91 · Uitleg op de aanmaakpagina's · Eigenaar: Claude (VRIJ — pagina A af, pagina B 3 van 7) — **bezig (sessie 2026-09-19, taak 91+87)**
|
|
|
-
|
|
|
-**✅ Klaar en export-geverifieerd 2026-09-18/19 op `uitgaansevenementAanmaken`**
|
|
|
-(`dart analyze` 0 errors): alle **zeven** hulpteksten staan er, elk direct ónder
|
|
|
-zijn sectiekop, in 12 px / `secondaryText`, mét Nederlandse én Engelse vertaling.
|
|
|
-Sleutels: `ohgppxt2` (Wat), `fbkrt89w` (Uw Horecagelegenheid), `j68hqlk7`
|
|
|
-(Categorie), `f8hii0ci` (Wanneer), `len3npim` (Organisatie), `rj9dgdp7` (Entree),
|
|
|
-`nvi2k89n` (Media). Ook gedaan: `Titel *` / `Title *` (`vc80d3lh`) en
|
|
|
-`Datum *` / `Date *` (`xceonmpt` — die stond in het Engels nog op "Datum", dus dit
|
|
|
-dicht meteen een P1-17-gat).
|
|
|
-
|
|
|
-**Nog open op pagina A (klein):**
|
|
|
-- het **intro-blok** bovenaan ("Meld hier een evenement aan bij een van je zaken.
|
|
|
- Velden met * zijn verplicht. Je evenement staat direct online." / EN idem);
|
|
|
-- de `hintText` **`Kies je horecagelegenheid *`** (`nhnxstvm`);
|
|
|
-- **taak 87 deel 2**: één extra `Text` ónder de horeca-hulptekst, in linkstijl
|
|
|
- (`secondary` + onderstreept) met een `Launch URL` naar
|
|
|
- `https://uitgaanskrant.com/nl/ondernemers` — *"Nog geen zaak aangemeld? Dat doe
|
|
|
- je op uitgaanskrant.com."* De sectieregel die er nu staat noemt die zin al, dus
|
|
|
- hem weghalen zodra de link er staat.
|
|
|
-
|
|
|
-**Pagina B (`stadsactiviteitAanmaken`): 3 van de 7 secties af** —
|
|
|
-export-geverifieerd, `dart analyze` 0 errors. Klaar met NL+EN én stijl
|
|
|
-(`bodySmall` + `secondaryText`): `evhqyjou` (Wat), `i0ij4drx` (Categorie),
|
|
|
-`e1nwfbwv` (Wanneer). **Nog te doen op pagina B:** de vier hulpregels voor
|
|
|
-**Waar, Organisatie, Entree en Media**, het intro-blok, en `Titel *`
|
|
|
-(`xorq08j5`) + `Datum *` (`dfa8vusy`, EN staat daar nu nog op het Nederlandse
|
|
|
-"Datum" — meteen een P1-17-gat om te dichten). Teksten NL+EN staan
|
|
|
-kant-en-klaar in de tabel hieronder.
|
|
|
-
|
|
|
-#
|
|
|
-
|
|
|
-#### ⚙️ Werkend recept (Claude, 2026-09-18) — lees dit vóór je verdergaat
|
|
|
-
|
|
|
-Per sectie, en houd je aan de **losse tool-aanroepen**, anders gaat het mis:
|
|
|
-1. **Sectiekop selecteren** (twee kliks op dezelfde tree-rij; de eerste landt nooit).
|
|
|
-2. **Rechtsklik → Duplicate.** De kopie komt áltijd ná het origineel. ⚠️ Het
|
|
|
- contextmenu klapt **omhoog** als de rij laag in het paneel staat — doe dus
|
|
|
- rechtsklik + screenshot in één aanroep en klik *Duplicate* pas in de volgende,
|
|
|
- op de positie die je van die screenshot afleest. Blind mikken op "+46 px" werkt
|
|
|
- alleen als de rij hoog genoeg staat.
|
|
|
-3. **De kopie bewerken, niet het origineel.** Ververs eerst het tree-filter en
|
|
|
- maak een verse `zoom` van de boom: hij verschuift tijdens het dupliceren, en
|
|
|
- een klik op de oude y-positie pakt dan het origineel. Dat is in deze sessie
|
|
|
- **drie keer** gebeurd (Categorie, Wanneer, Media) en kost telkens een
|
|
|
- reparatieronde waarin je de twee teksten weer omwisselt.
|
|
|
-4. **Tekst zetten: `triple_click` in aanroep A, `ctrl+a` + `type` in aanroep B.**
|
|
|
- Eén batch werkt niet — de eerste triple_click na een nieuwe selectie landt niet.
|
|
|
-5. ⚠️ **Het rechterpaneel toont ná een geslaagde wijziging vaak nog de oude waarde.**
|
|
|
- Typ dus niet nog eens "omdat er niets lijkt te gebeuren": dan zet je de tekst op
|
|
|
- twee widgets tegelijk. Controleer het **canvas**, niet het paneel.
|
|
|
-6. **Stijl in één klik: Theme Text Style → Body Small.** Dat zet ineens Roboto,
|
|
|
- 400 en 12 px goed (ook op de Entree-/Media-koppen, die `Headline Small` +
|
|
|
- Noto Serif zijn). Daarna alleen nog Text Color → **Secondary Text**.
|
|
|
- *Copy/Paste Widget Style uit het contextmenu werkt níet — niet opnieuw proberen.*
|
|
|
-7. **Vertaling:** globe-icoontje naast het label *Text* → English invullen → Back.
|
|
|
- Een duplicaat erft de Engelse tekst van de kop, dus dit moet echt per widget.
|
|
|
-8. **Verifiëren met een verse export**, nooit met het paneel. Handig commando:
|
|
|
- `grep -n "getText(" -A1 <widget>.dart | grep "/\*"` geeft alle teksten in
|
|
|
- documentvolgorde, dus je ziet meteen of kop en hulptekst in de goede volgorde
|
|
|
- staan.
|
|
|
-
|
|
|
-Twee dingen die deze sessie **niet** werkten en waar je geen tijd in moet steken:
|
|
|
-het **tree-zoekveld** raakte na ~20 minuten bewerken zijn filterfunctie kwijt
|
|
|
-(een paginaherlaad herstelt dat), en **Ctrl+D** / **Ctrl+Shift+C/V** doen niets.
|
|
|
-
|
|
|
-*(Oorspronkelijke opdracht en alle teksten hieronder ongewijzigd.)*
|
|
|
-
|
|
|
-
|
|
|
-Bob 2026-09-18: *"we moeten uitleg op de evenementen/activiteiten aanmaken
|
|
|
-pagina maken."* Nu staat er nergens wat verplicht is, wat een veld betekent, of
|
|
|
-wat er ná indienen gebeurt — de verplichte velden zijn alléén in de custom
|
|
|
-action afgedwongen (`evenementCreate` / `stadsactiviteitCreate`), dus de
|
|
|
-gebruiker ziet pas ná indienen *"Titel is verplicht"*.
|
|
|
-
|
|
|
-**Gekozen opzet (Bob akkoord):** intro-blok bovenaan + één regel hulptekst onder
|
|
|
-elke bestaande sectiekop + `*` achter de verplichte labels. Géén info-icoontjes
|
|
|
-met tooltip (op mobiel een extra tik, en je ziet niet dát er uitleg is), en géén
|
|
|
-losse lap tekst bovenaan (wordt weggescrold). Per-veld-uitleg (laag 3) en echte
|
|
|
-veldvalidatie vóór indienen zijn bewust buiten scope gehouden.
|
|
|
-
|
|
|
-**Bouwtechnisch:** losse `Text`-widgets, **géén** herbruikbaar component met een
|
|
|
-`tekst`-parameter — een parameterwaarde valt buiten het vertaalsysteem, een
|
|
|
-`Text` krijgt een eigen sleutel en is dus via het globe-icoontje te vertalen.
|
|
|
-Eén `Text` opmaken (stijl `bodySmall`, kleur `secondaryText`, 12px), dan
|
|
|
-`Duplicate` per sectie en in de kaart-`Column` direct ónder de sectiekop zetten.
|
|
|
-Reken op ±16 Text-widgets over beide pagina's.
|
|
|
-⚠️ **Een duplicaat erft de Engelse vertaling van het origineel** (zie P1-17) —
|
|
|
-zet de EN dus per widget opnieuw via het globe-icoontje, en verifieer met een
|
|
|
-verse export, niet met het paneel ("ziet er opgeslagen uit"-patroon).
|
|
|
-
|
|
|
-**Belangrijkste zin van de hele taak — de categorie.** Bob expliciet: de
|
|
|
-categorie bepaalt in welke overzichten het item terechtkomt. Dat is geen
|
|
|
-stijlpunt maar hard gedrag: `flutterflowmobiel1` verdeelt over displays
|
|
|
-services_1…7 per categorie, dus een item zónder categorie komt in **geen enkele
|
|
|
-tab** (dat was precies de bevinding van taak 28: 6 van de 7 onzichtbare events
|
|
|
-hadden geen categorie).
|
|
|
-
|
|
|
----
|
|
|
-
|
|
|
-**Stand per 2026-09-19, gemeten op een verse export (niet gebouwd, alleen geteld):**
|
|
|
-- **A:** 5 van de 7 sectieregels staan er — Wat, Uw Horecagelegenheid, Categorie,
|
|
|
- Wanneer, Organisatie, alle vijf mét Engelse vertaling. **Nog te doen:** de
|
|
|
- regels bij *Entree* en *Media*, het intro-blok, en de `*` achter `Titel`,
|
|
|
- `Datum` en de hint `Kies je horecagelegenheid`.
|
|
|
-- **B:** nog niets van deze taak — 0 van de 7 regels, geen intro, geen `*`.
|
|
|
-
|
|
|
-#
|
|
|
-
|
|
|
-#### A · `uitgaansevenementAanmaken`
|
|
|
-
|
|
|
-**Intro-blok, bovenaan (boven de kaart "Wat"):**
|
|
|
-- NL: *Meld hier een evenement aan bij een van je zaken. Velden met * zijn verplicht. Je evenement staat direct online.*
|
|
|
-- EN: *Submit an event for one of your venues here. Fields marked * are required. Your event goes online right away.*
|
|
|
-
|
|
|
-**Regel onder elke sectiekop:**
|
|
|
-
|
|
|
-| Sectie | NL | EN |
|
|
|
-|---|---|---|
|
|
|
-| Wat | Geef een korte, herkenbare titel. De omschrijving verschijnt op de detailpagina van het evenement. | Give it a short, recognisable title. The description appears on the event's detail page. |
|
|
|
-| Uw Horecagelegenheid | Kies de zaak waar het evenement plaatsvindt. Je ziet hier alleen zaken die op jouw account staan. Nog geen zaak aangemeld? Dat doe je op uitgaanskrant.com. | Choose the venue where the event takes place. You only see venues linked to your account. No venue yet? You can add one on uitgaanskrant.com. |
|
|
|
-| Categorie evenement | Let op: de categorie bepaalt in welke overzichten je evenement verschijnt. Kies er minstens één — zonder categorie is je evenement nergens terug te vinden. | Note: the category decides which listings your event appears in. Pick at least one — without a category your event won't show up anywhere. |
|
|
|
-| Wanneer | De begindatum is verplicht. Vul een einddatum alleen in bij een evenement dat meerdere dagen duurt. | The start date is required. Only fill in an end date for an event that runs several days. |
|
|
|
-| Organisatie | Optioneel. Een website of ticketlink tonen we als knop bij je evenement. | Optional. A website or ticket link is shown as a button on your event. |
|
|
|
-| Entree | Laat leeg als er geen entree wordt geheven. Vul de prijs in als bedrag, bijvoorbeeld 7,50. | Leave empty if there's no admission charge. Enter the price as an amount, for example 7.50. |
|
|
|
-| Media | Eén logo en meerdere foto's. Tik nogmaals op "Foto's kiezen" om er een toe te voegen; de vorige blijft staan. | One logo and several photos. Tap "Choose photos" again to add another; the previous one stays. |
|
|
|
-
|
|
|
-**Verplicht markeren met `*`** (verplicht volgens `evenementCreate`:
|
|
|
-horecagelegenheid, titel, datum-start):
|
|
|
-- `labelText` `Titel` (`vc80d3lh`) → `Titel *`
|
|
|
-- `labelText` `Datum` (`xceonmpt`) → `Datum *`
|
|
|
-- `hintText` `Kies je horecagelegenheid` (`nhnxstvm`) → `Kies je horecagelegenheid *`
|
|
|
-
|
|
|
-De regel bij "Uw Horecagelegenheid" overlapt bewust met **taak 87** — bouw die
|
|
|
-twee samen, dan is één van beide de link-variant (`Launch URL` naar
|
|
|
-`https://uitgaanskrant.com/nl/ondernemers`) en hoeft de zin er niet twee keer
|
|
|
-te staan.
|
|
|
-
|
|
|
----
|
|
|
-
|
|
|
-#
|
|
|
-
|
|
|
-#### B · `stadsactiviteitAanmaken`
|
|
|
-
|
|
|
-**Intro-blok, bovenaan:**
|
|
|
-- NL: *Meld hier een activiteit aan in jouw gemeente. Velden met * zijn verplicht. Heb je stadsredacteur-rechten voor deze plaats, dan staat je activiteit direct online; anders kijken we hem eerst na.*
|
|
|
-- EN: *Submit an activity in your municipality here. Fields marked * are required. If you have city editor rights for this town your activity goes online right away; otherwise we review it first.*
|
|
|
-
|
|
|
-**Regel onder elke sectiekop:**
|
|
|
-
|
|
|
-| Sectie | NL | EN |
|
|
|
-|---|---|---|
|
|
|
-| Wat | Geef een korte, herkenbare titel. De omschrijving verschijnt op de detailpagina van de activiteit. | Give it a short, recognisable title. The description appears on the activity's detail page. |
|
|
|
-| Categorie evenement | Let op: de categorie bepaalt in welke overzichten je activiteit verschijnt. Kies er minstens één — zonder categorie is je activiteit nergens terug te vinden. | Note: the category decides which listings your activity appears in. Pick at least one — without a category your activity won't show up anywhere. |
|
|
|
-| Wanneer | De begindatum is verplicht. Vul een einddatum alleen in bij een activiteit die meerdere dagen duurt. | The start date is required. Only fill in an end date for an activity that runs several days. |
|
|
|
-| Waar | Kies eerst de plaats waar de activiteit plaatsvindt — dat is verplicht. Adres, postcode en plaatsnaam daaronder zijn het bezoekadres en optioneel. | First choose the town where the activity takes place — that one is required. The address, postcode and town name below are the visiting address and optional. |
|
|
|
-| Organisatie | Optioneel. De naam van de organisator en een contactadres of website waar bezoekers terechtkunnen. | Optional. The organiser's name and a contact address or website for visitors. |
|
|
|
-| Entree | Laat leeg als er geen entree wordt geheven. Vul de prijs in als bedrag, bijvoorbeeld 7,50. | Leave empty if there's no admission charge. Enter the price as an amount, for example 7.50. |
|
|
|
-| Media | Eén logo en meerdere foto's. Tik nogmaals op "Foto's kiezen" om er een toe te voegen; de vorige blijft staan. | One logo and several photos. Tap "Choose photos" again to add another; the previous one stays. |
|
|
|
-
|
|
|
-**Verplicht markeren met `*`** (verplicht volgens `stadsactiviteitCreate`:
|
|
|
-titel, plaats-tid, datum-start):
|
|
|
-- `labelText` `Titel` (`xorq08j5`) → `Titel *`
|
|
|
-- `labelText` `Datum` (`dfa8vusy`) → `Datum *`
|
|
|
-- **Géén `*` op de vier Waar-dropdowns** — welke van de twee routes ("Mijn
|
|
|
- gemeenten" óf de cascade provincie/gemeente/plaats) je gebruikt is vrij; de
|
|
|
- sectieregel hierboven zegt daarom dat de plaats verplicht is.
|
|
|
-
|
|
|
-⚠️ **Verwarring die de sectieregel bij "Waar" bewust opheldert:** er staan hier
|
|
|
-twee dingen die "plaats" heten. De verplichte waarde is de **plaats-tid** uit de
|
|
|
-dropdowns (`createPlaatsID`); het tekstveld met label **Plaats** (`825wzmk4`,
|
|
|
-hint *Plaats activiteit*) is gewoon een regel van het bezoekadres en is
|
|
|
-optioneel.
|
|
|
----
|
|
|
-
|
|
|
-#
|
|
|
-
|
|
|
-### 🆕 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
|
|
|
-horecagelegenheid kunt aanmaken. Kan alleen via de website."* Nu staat dat
|
|
|
-nergens — niet in de app en niet op de helppagina.
|
|
|
-
|
|
|
-**Waarom dit er echt toe doet:** `uitgaansevenementAanmaken` heeft een dropdown
|
|
|
-**"Uw Horecagelegenheid"** (sleutel `rqx6m3yf`) die gevuld wordt uit
|
|
|
-`mijn_horecagelegenheden`. Wie nog geen zaak heeft, ziet daar een **lege
|
|
|
-dropdown** en kan dus geen evenement indienen — zonder dat er ook maar iets
|
|
|
-uitlegt waarom, of wat hij dan wél moet doen. Dat is nu een doodlopende weg.
|
|
|
-
|
|
|
-Twee plekken, in deze volgorde:
|
|
|
-
|
|
|
-1. **Helppagina `/nl/support/mobieleapp` (Drupal, Bob).** Eigen kopje, bv. "Je
|
|
|
- zaak aanmelden": een horecagelegenheid maak je aan op de website, niet in de
|
|
|
- app; daarna verschijnt hij in de app onder *Uw Horecagelegenheid* en kun je er
|
|
|
- evenementen bij indienen. **URL gevonden door Claude 2026-09-18:**
|
|
|
- `https://uitgaanskrant.com/nl/ondernemers` (anoniem 200) — daar staat
|
|
|
- "Hoe werkt het?" met account aanmaken → onderneming claimen óf toevoegen →
|
|
|
- evenementen aanmaken, mét een link naar `/nl/node/add/horecagelegenheid`.
|
|
|
- De helppagina heeft al de zin *"Horecagelegenheden toevoegen kan op dit moment
|
|
|
- alleen via de website"*, maar **zonder link** — die zin moet dus alleen nog naar
|
|
|
- `/nl/ondernemers` gaan wijzen. Bob bevestigt of dit de bedoelde pagina is.
|
|
|
-2. **In de app, onder de dropdown op `uitgaansevenementAanmaken` (Claude,
|
|
|
- builder).** Eén `Text` onder de dropdown, stijl `secondary` + onderstreept
|
|
|
- (zelfde als de andere links in de app), met een `Launch URL` naar die pagina:
|
|
|
- *"Nog geen zaak aangemeld? Dat doe je op uitgaanskrant.com."* Engelse
|
|
|
- vertaling meteen meegeven. Eventueel met een Visibility-conditie zodat hij
|
|
|
- alleen verschijnt bij een lege lijst — maar hem altijd tonen mag ook en is
|
|
|
- veel minder bouwwerk.
|
|
|
-
|
|
|
-Zelfde afweging geldt voor `stadsactiviteitAanmaken`: check bij het bouwen even
|
|
|
-of die pagina hetzelfde probleem heeft (stadsrechten i.p.v. een zaak).
|
|
|
-
|
|
|
### 🆕 88 · "Mijn aanmeldingen" + kloonknop · deel A ✅ AF · **deel B: Claude — BEZIG (sessie 'taken-B1-B7', 2026-09-19)**
|
|
|
|
|
|
⚠️ **Deel B is geclaimd — niet ook oppakken.** Deel A (beide Drupal-endpoints)
|