|
@@ -50,7 +50,7 @@ Google Play en één doorloop die alleen Bob kan doen.
|
|
|
| **120** | 12 hardcoded kleuren aan thematokens binden | ⚠️ Claude kwam er 2026-09-20 niet in: widget-selectie in de tree landt niet in Bob's huidige Chrome-venster. Inventaris mét vindplaatsen staat klaar | Alle 12 zijn exact gelijk aan een bestaand token, dus nu onzichtbaar — maar ze lopen niet mee bij een themawijziging. Eigen blok hieronder |
|
|
| **120** | 12 hardcoded kleuren aan thematokens binden | ⚠️ Claude kwam er 2026-09-20 niet in: widget-selectie in de tree landt niet in Bob's huidige Chrome-venster. Inventaris mét vindplaatsen staat klaar | Alle 12 zijn exact gelijk aan een bestaand token, dus nu onzichtbaar — maar ze lopen niet mee bij een themawijziging. Eigen blok hieronder |
|
|
|
| ~~117~~ | ~~Kalenderpermissie eruit~~ | ✅ **AF** (Bob 2026-09-20, export-geverifieerd): `READ_CALENDAR`/`WRITE_CALENDAR` én `NSCalendarsUsageDescription` zijn weg; `CAMERA` staat er nog (terecht) |
|
|
| ~~117~~ | ~~Kalenderpermissie eruit~~ | ✅ **AF** (Bob 2026-09-20, export-geverifieerd): `READ_CALENDAR`/`WRITE_CALENDAR` én `NSCalendarsUsageDescription` zijn weg; `CAMERA` staat er nog (terecht) |
|
|
|
| **118** | AdMob EU-consentbericht | ⚠️ Half: de FlutterFlow-toggle staat goed, maar het bericht moet in de **AdMob-console** gepubliceerd zijn. Eigen blok hieronder |
|
|
| **118** | AdMob EU-consentbericht | ⚠️ Half: de FlutterFlow-toggle staat goed, maar het bericht moet in de **AdMob-console** gepubliceerd zijn. Eigen blok hieronder |
|
|
|
-| **122** | Teksten aanmaakpagina's doornemen | Labels, hints en Engelse vertalingen op de activiteiten- en evenementenpagina. Inventaris mét i18n-sleutels staat in een eigen blok hieronder; o.a. "Categorie **evenement**" als kop op de *activiteiten*pagina, "Selectee...", "WebsiteURL"/"TicketsURL" en een sterretje dat niet klopt met de introtekst |
|
|
|
|
|
|
|
+| **122** | Teksten aanmaakpagina's | ✅ **A/B/C af** (Claude 2026-09-20, 19 teksten, export-geverifieerd): verkeerde woorden, typefouten, technische veldnamen en het sterretje bij de categoriekeuze. Open blijven D (hints die het label herhalen), E-restje en F (`Select...` op een NL-pagina) — eigen blok hieronder |
|
|
|
| **123** | `mijn_stadsrechten` uitbreiden met de keten | **Code staat klaar en is op productie getest.** Vervang regels 316-372 van `custom.evenementen_aanmaken.inc` + `cc all`. Blokkeert 124 |
|
|
| **123** | `mijn_stadsrechten` uitbreiden met de keten | **Code staat klaar en is op productie getest.** Vervang regels 316-372 van `custom.evenementen_aanmaken.inc` + `cc all`. Blokkeert 124 |
|
|
|
| **124-126** | Stadsrechten-cascade op `stadsactiviteitAanmaken` | Voorvullen van provincie/gemeente/plaats (124), een **crash** bij een lege plaatsenlijst (125) en een stille verkeerde plaats bij het wisselen van gemeente (126). Eigen blok hieronder |
|
|
| **124-126** | Stadsrechten-cascade op `stadsactiviteitAanmaken` | Voorvullen van provincie/gemeente/plaats (124), een **crash** bij een lege plaatsenlijst (125) en een stille verkeerde plaats bij het wisselen van gemeente (126). Eigen blok hieronder |
|
|
|
|
|
|
|
@@ -356,168 +356,44 @@ tot de slider — die Bob er bewust in had gezet — blijft staan.
|
|
|
tekent dus even buiten zijn kader. Inherent aan de gegenereerde widget, niet vanuit
|
|
tekent dus even buiten zijn kader. Inherent aan de gegenereerde widget, niet vanuit
|
|
|
de builder te clippen. De layout beweegt niet meer, en dat was het doel.
|
|
de builder te clippen. De layout beweegt niet meer, en dat was het doel.
|
|
|
|
|
|
|
|
-### 122 · Teksten op de twee aanmaakpagina's doornemen · Eigenaar: Bob
|
|
|
|
|
-
|
|
|
|
|
-**Wat:** labels, hints, sectiekoppen en Engelse vertalingen langslopen op
|
|
|
|
|
-`stadsactiviteitAanmaken` (51 teksten) en `uitgaansevenementAanmaken` (41).
|
|
|
|
|
-Het introblok en de hulpregels van taak 91 staan er goed op en zijn netjes
|
|
|
|
|
-vertaald — wat overblijft zijn verkeerde woorden, typefouten, technische
|
|
|
|
|
-veldnamen en verschillen **tussen** de twee pagina's.
|
|
|
|
|
-
|
|
|
|
|
-Inventaris uit een verse export van 2026-09-20 (de werkkopie liep achter; de
|
|
|
|
|
-hulpregels leken daar te ontbreken maar staan er wél). Elke sleutel hieronder is
|
|
|
|
|
-de i18n-key — bereikbaar via het globe-icoontje naast het Text-/Label-veld.
|
|
|
|
|
-`ACT` = activiteitenpagina, `EVT` = evenementenpagina.
|
|
|
|
|
-
|
|
|
|
|
-**A · Gewoon fout**
|
|
|
|
|
-- `ACT moj9sft5` sectiekop **"Categorie evenement"** staat op de
|
|
|
|
|
- *activiteiten*pagina → "Categorie activiteit".
|
|
|
|
|
-- `ACT dqeuq7t8` dropdown-hint **"Selectee..."** (dubbele e).
|
|
|
|
|
-- `ACT oo7z1mp8` EN **"Zipcde"** — de hint eronder (`j9h65a88`) heeft wél
|
|
|
|
|
- "Zipcode".
|
|
|
|
|
-- `EVT vu6qv8cj` EN **"Title cityactvity"** — typefout én de verkeerde entiteit.
|
|
|
|
|
-- `ACT jwgx4el8` EN **"Title cityactivity"** — interne veldnaam, geen Engels.
|
|
|
|
|
-- `EVT vkyrmq6a` EN **"Organisatsion"**.
|
|
|
|
|
-- `EVT r9s46lo7` / `3h3k4jh2` / `ge5o3gf7` EN **"Feeprice"**.
|
|
|
|
|
-
|
|
|
|
|
-**B · Technische namen die een gebruiker niet hoort te zien**
|
|
|
|
|
-- `ACT i66ori1d` / `EVT e9n6cj1o` **"WebsiteURL"** → "Website" (EN is hier gelijk
|
|
|
|
|
- aan NL, dus in beide talen).
|
|
|
|
|
-- `EVT zfofdq9a` **"TicketsURL"** → "Ticketlink".
|
|
|
|
|
-- **"Datum eind"** op vier plekken (`ACT 71z3uvd8`+`1k52hayg`,
|
|
|
|
|
- `EVT wkn1mu1d`+`e42lwmdh`) → "Einddatum".
|
|
|
|
|
-- **"Toelichting Entree"** (4 plekken) — hoofdletter midden in de zin.
|
|
|
|
|
-- `EVT rqx6m3yf` **"Uw Horecagelegenheid"** → de rest van beide pagina's
|
|
|
|
|
- tutoyeert ("je evenement", "jouw account"), en de hulpregel eronder noemt het
|
|
|
|
|
- zelf een **zaak**. Kies één aanspreekvorm en één woord.
|
|
|
|
|
-
|
|
|
|
|
-**C · Het sterretje klopt niet met de introtekst**
|
|
|
|
|
-Beide intro's zeggen "Velden met * zijn verplicht". Nu staat het sterretje op
|
|
|
|
|
-Titel, Datum en (EVT) "Kies je horecagelegenheid". Het **ontbreekt** op:
|
|
|
|
|
-- de categoriekeuze op **beide** pagina's, terwijl de hulpregel eronder zegt
|
|
|
|
|
- *"zonder categorie is je evenement/activiteit nergens terug te vinden"*;
|
|
|
|
|
-- `ACT` de plaatskeuze (`ls6do5d5` / `sv5qajjt`), terwijl de hulpregel bij
|
|
|
|
|
- *Waar* letterlijk zegt *"dat is verplicht"*.
|
|
|
|
|
-
|
|
|
|
|
-**D · Hints die alleen het label herhalen**
|
|
|
|
|
-Datum/Datum, Adres/Adres, Postcode/Postcode, Toelichting Entree (2×) en
|
|
|
|
|
-**Entreeprijs (3×)**. Die regel is nu weggegooide ruimte; een voorbeeld doet het
|
|
|
|
|
-werk wel — "bijv. 7,50", "1012 AB", "bijv. Jazz in de Tuin".
|
|
|
|
|
-
|
|
|
|
|
-**E · De twee pagina's noemen hetzelfde veld anders (vooral in het Engels)**
|
|
|
|
|
-
|
|
|
|
|
-| veld | ACT | EVT |
|
|
|
|
|
-|---|---|---|
|
|
|
|
|
-| Categorie | `Category` | `Category event` |
|
|
|
|
|
-| Toelichting Entree | `Admission description` / `Fee description` *(label en hint verschillen onderling!)* | `Description Fee` |
|
|
|
|
|
-| Entreeprijs | `Admission price` | `Feeprice` |
|
|
|
|
|
-| Datum eind | `End date` | `Date end` |
|
|
|
|
|
-| Logo kiezen | `Choose logo` | `Select logo` |
|
|
|
|
|
-| Omschrijving … | `Description activity` | `Event description` |
|
|
|
|
|
-
|
|
|
|
|
-**F · Engels ontbreekt of is Nederlands blijven staan**
|
|
|
|
|
-`ACT xiba4gka` / `l9f37oxb` / `ajotnz1f` en `EVT 2hitlrxa` / `qtnlg7nd` en
|
|
|
|
|
-`EVT e9n6cj1o` / `zfofdq9a`. *(`Contact` en `Media` zijn in beide talen gelijk —
|
|
|
|
|
-die mogen zo blijven.)* Aan de **Nederlandse** kant hetzelfde probleem: `ACT`
|
|
|
|
|
-gebruikt "Selecteer..."/"Zoek..." bij de categorie, maar **"Select..."** bij drie
|
|
|
|
|
-andere dropdowns op diezelfde pagina.
|
|
|
|
|
-
|
|
|
|
|
-**Werkwijze:** globe-icoontje per widget (recept in `CLAUDE.md`, sectie
|
|
|
|
|
-"Vertalingen invullen"). Eén klik per tool-aanroep, en **verifieer met een verse
|
|
|
|
|
-export** — het rechterpaneel toont na een geslaagde wijziging vaak nog de oude
|
|
|
|
|
-waarde.
|
|
|
|
|
-
|
|
|
|
|
-**Deel dat gedelegeerd kan:** punt A, E en F zijn mechanisch herhaalwerk zonder
|
|
|
|
|
-geneste dialogen. Zeg het even als Claude die mag oppakken; B t/m D zijn
|
|
|
|
|
-schrijfkeuzes en horen bij jou.
|
|
|
|
|
-
|
|
|
|
|
-### 123 · Stadsrechten-cascade op `stadsactiviteitAanmaken` — Drupal-deel · Eigenaar: Bob
|
|
|
|
|
-
|
|
|
|
|
-**Code staat klaar en is getest** (2026-09-20, Claude): vervang in
|
|
|
|
|
-`sites/all/modules/custom/custom.evenementen_aanmaken.inc` de **regels 316 t/m
|
|
|
|
|
-372** (docblock t/m sluitende accolade van `_custom_mijn_stadsrechten_service()`)
|
|
|
|
|
-door de aangeleverde versie. Daarna `drush @<alias> cc all`.
|
|
|
|
|
-
|
|
|
|
|
-**Waarom:** `field_town_access` mag een term op **elk** van de drie niveaus van
|
|
|
|
|
-de town-vocabulary bevatten — plaats (tot 2026-08-27), gemeente (huidige
|
|
|
|
|
-standaard) of provincie (de widget staat op Max depth 2 en laat dat toe; Bob
|
|
|
|
|
-geeft ze bewust op provincieniveau, dat scheelt veel werk). De app stopte die tid
|
|
|
|
|
-rechtstreeks in `plaatsen_bij_gemeente`, en dat geeft bij provincie én plaats een
|
|
|
|
|
-lege lijst → zie taak 125.
|
|
|
|
|
-
|
|
|
|
|
-De nieuwe versie geeft per recht de **volledig uitgeklapte keten** terug:
|
|
|
|
|
-`niveau` · `provincie_tid`/`_titel` · `gemeente_tid`/`_titel` ·
|
|
|
|
|
-`plaats_tid`/`_titel` · `keten` (`"provincie|gemeente|plaats"`, ontbrekende delen
|
|
|
|
|
-leeg) · `label` (bv. *"Noord-Brabant (hele provincie)"*). `tid`, `titel`,
|
|
|
|
|
-`parent_tid` en `parent_titel` blijven ongewijzigd staan, dus bestaande
|
|
|
|
|
-consumenten merken niets. Sortering is hiërarchisch i.p.v. alfabetisch op titel.
|
|
|
|
|
-
|
|
|
|
|
-Getest op productie onder een testnaam, alle drie de niveaus:
|
|
|
|
|
-
|
|
|
|
|
-| account | recht | `keten` |
|
|
|
|
|
-|---|---|---|
|
|
|
|
|
-| bobcity | 28694 Amsterdam (gemeente) | `28666\|28694\|` |
|
|
|
|
|
-| bobhoreca | 27409 Noord-Brabant (provincie) | `27409\|\|` |
|
|
|
|
|
-| Team Klein Frankrijk | 29912 Zuid-Holland (provincie) | `29912\|\|` |
|
|
|
|
|
-
|
|
|
|
|
-### 124 · Stadsrechten-cascade — app-deel · Eigenaar: nader te bepalen (na 123)
|
|
|
|
|
|
|
+### 122 · Teksten aanmaakpagina's — A/B/C AF, D/E/F open · Eigenaar: Bob
|
|
|
|
|
|
|
|
-De eerste dropdown in het *Waar*-blok van `stadsactiviteitAanmaken` moet de drie
|
|
|
|
|
-cascade-dropdowns voorvullen tot zover het recht reikt, in plaats van alleen
|
|
|
|
|
-`createGemeenteID` te zetten:
|
|
|
|
|
|
|
+**Afgerond 2026-09-20 (Claude, in de builder, 19/19 geverifieerd met een verse
|
|
|
|
|
+export).** Punt A (gewoon fout), punt B (technische veldnamen) en punt C (het
|
|
|
|
|
+sterretje bij de categoriekeuze) zijn gedaan op béide pagina's:
|
|
|
|
|
|
|
|
-| recht | voorvullen | gebruiker kiest nog |
|
|
|
|
|
-|---|---|---|
|
|
|
|
|
-| provincie | provincie | gemeente + plaats |
|
|
|
|
|
-| gemeente | provincie + gemeente | plaats |
|
|
|
|
|
-| plaats (oud) | alle drie | niets |
|
|
|
|
|
-
|
|
|
|
|
-**Stappen:** dropdown-waarde omzetten van `$[:].tid` naar **`$[:].keten`** (label
|
|
|
|
|
-op `$[:].label`), plus drie custom functions van **één** String-argument
|
|
|
|
|
-(`ketenProvincie` / `ketenGemeente` / `ketenPlaats` → `split('|')[n]`). Die ene
|
|
|
|
|
-parameter is bewust: een lookup op de hele respons vraagt een custom function met
|
|
|
|
|
-meerdere argumenten, en die binding loopt in de Action Flow Editor structureel
|
|
|
|
|
-vast (zie `CLAUDE.md`). On Selected → `Update Page State` voor
|
|
|
|
|
-`createProvincieID`/`createGemeenteID`/`createPlaatsID` + `Set Form Field` op de
|
|
|
|
|
-drie dropdowns.
|
|
|
|
|
-
|
|
|
|
|
-Een lege `Set Form Field`-waarde wordt geweigerd ("Value cannot be empty"), dus
|
|
|
|
|
-voor de lege delen van de keten is **Reset Form Fields** nodig — wat meteen de
|
|
|
|
|
-tweede helft van taak 126 afhandelt.
|
|
|
|
|
-
|
|
|
|
|
-**Voorvullen, niet verbergen** (besluit Bob 2026-09-20): met verbergen kun je
|
|
|
|
|
-achteraf niet meer wisselen zonder eerst de rechten-dropdown leeg te maken.
|
|
|
|
|
-
|
|
|
|
|
-### 125 · Crash: lege plaatsenlijst sloopt de Plaats-dropdown · Eigenaar: nader te bepalen
|
|
|
|
|
-
|
|
|
|
|
-`stadsactiviteit_aanmaken_widget.dart:1878` doet
|
|
|
|
|
-`(getJsonField(respons, r'$[:].plaatsid', true) as List?)!`. `getJsonField` geeft
|
|
|
|
|
-bij **0 matches `null`** — ook met `isForList: true`, want de `isEmpty`-check
|
|
|
|
|
-staat ervóór ([`flutter_flow_util.dart:356`]). Een lege respons `[]` geeft dus
|
|
|
|
|
-`Null check operator used on a null value`; in een release-build een grijs blok
|
|
|
|
|
-zonder melding.
|
|
|
|
|
-
|
|
|
|
|
-Treedt nu op bij elke provincie- of plaats-tid in `field_town_access`, maar staat
|
|
|
|
|
-**los van taak 123/124**: ook een gemeente zónder plaatsen in de taxonomie geeft
|
|
|
|
|
-dezelfde crash. Zelfde patroon staat op de **gemeente**- en **provincie**-dropdown
|
|
|
|
|
-van diezelfde pagina — alle drie langslopen.
|
|
|
|
|
-
|
|
|
|
|
-Fix: Generate-Dynamic-Children-achtige null-veiligheid via een **Predefined Path**
|
|
|
|
|
-op de API-call (`$[:]`, Is List) i.p.v. een JSON Path — dat genereert
|
|
|
|
|
-`(XCall.items(jsonBody)?.toList() ?? [])`. Recept staat in `CLAUDE.md`.
|
|
|
|
|
-
|
|
|
|
|
-### 126 · Stale `createPlaatsID` bij het wisselen van gemeente · Eigenaar: nader te bepalen
|
|
|
|
|
-
|
|
|
|
|
-Geen van de vier dropdowns in het *Waar*-blok reset de onderliggende. Scenario:
|
|
|
|
|
-kies gemeente A → plaats A₁ (`createPlaatsID` gezet) → wissel naar gemeente B.
|
|
|
|
|
-De Plaats-dropdown toont dan weer zijn hint (`FlutterFlowDropDown` filtert een
|
|
|
|
|
-waarde die niet in de opties zit weg, [`flutter_flow_drop_down.dart:101`]), maar
|
|
|
|
|
-`createPlaatsID` houdt **A₁** vast. De verzendknop blijft dus zichtbaar en je
|
|
|
|
|
-dient in voor de vorige plaats. Stil, geen foutmelding.
|
|
|
|
|
-
|
|
|
|
|
-Fix: `Reset Form Fields` + `Update Page State` (Reset Value) op de onderliggende
|
|
|
|
|
-velden in de On-Selected van provincie, gemeente én de rechten-dropdown. Overlapt
|
|
|
|
|
-met taak 124 — samen oppakken.
|
|
|
|
|
|
|
+| was | is nu |
|
|
|
|
|
+|---|---|
|
|
|
|
|
+| `ACT` kop "Categorie **evenement**" | "Categorie activiteit \*" / `Category *` |
|
|
|
|
|
+| `EVT` kop "Categorie evenement" | "Categorie evenement \*" / `Category *` |
|
|
|
|
|
+| "Selectee..." | "Selecteer..." |
|
|
|
|
|
+| "Datum eind" (4×) | "Einddatum" / `End date` |
|
|
|
|
|
+| "WebsiteURL" (2×) | "Website" |
|
|
|
|
|
+| "TicketsURL" | "Ticketlink" / `Ticket link` |
|
|
|
|
|
+| "Toelichting **E**ntree" (2×) | "Toelichting entree" |
|
|
|
|
|
+| "Uw Horecagelegenheid" | "Je horecagelegenheid" / `Your venue` |
|
|
|
|
|
+| EN `Zipcde` · `Organisatsion` · `Feeprice` (2×) | `Zipcode` · `Organisation` · `Admission price` |
|
|
|
|
|
+| EN `Title cityactivity` · `Title cityactvity` | `Activity title` · `Event title` |
|
|
|
|
|
+
|
|
|
|
|
+**Nog open — schrijfkeuzes, bewust bij Bob gelaten:**
|
|
|
|
|
+
|
|
|
|
|
+- **D · hints die alleen het label herhalen.** Elk veld heeft een `Text`-label
|
|
|
|
|
+ bóven het invoerveld én een `labelText` én een `hintText`; staan die alle drie
|
|
|
|
|
+ op hetzelfde woord, dan leest de gebruiker het drie keer. Bob heeft de losse
|
|
|
|
|
+ `Text`-labels van "Toelichting Entree" en "Entreeprijs" al weggehaald; over
|
|
|
|
|
+ zijn nog de label/hint-paren: `ACT` Einddatum · Adres · Postcode ·
|
|
|
|
|
+ Entreeprijs, `EVT` Einddatum · Toelichting entree · Entreeprijs. Een voorbeeld
|
|
|
|
|
+ in de hint doet meer werk dan een herhaling — "bijv. 7,50", "1012 AB".
|
|
|
|
|
+- **E · resterend verschil tussen de pagina's.** Alleen nog "Omschrijving …":
|
|
|
|
|
+ `ACT` EN `Description activity` tegenover `EVT` EN `Event description`.
|
|
|
|
|
+- **F · Engelse placeholders op een Nederlandse pagina.** `Select...` staat er
|
|
|
|
|
+ nog 4× (`ACT xiba4gka`, `l9f37oxb`, `ajotnz1f`; `EVT 2hitlrxa`, `ht4toe4o`) en
|
|
|
|
|
+ `Search...` 1× (`EVT qtnlg7nd`), terwijl de categorie-dropdown op `ACT` wél
|
|
|
|
|
+ "Selecteer..." / "Zoek..." zegt. Mechanisch werk; Claude kan dit oppakken.
|
|
|
|
|
+- ⚠️ **Drie woorden voor hetzelfde ding op `EVT`.** De intro zegt "van je
|
|
|
|
|
+ **onderneming**", de kop en de dropdown zeggen "**horecagelegenheid**", de
|
|
|
|
|
+ hulpregel zegt "de **zaak** waar het evenement plaatsvindt". Eén woord kiezen
|
|
|
|
|
+ is een besluit voor Bob, geen opruimklus.
|
|
|
|
|
|
|
|
### 121 · 15 verweesde mappen in `lib/` · Eigenaar: Bob (Claude verwijdert niets)
|
|
### 121 · 15 verweesde mappen in `lib/` · Eigenaar: Bob (Claude verwijdert niets)
|
|
|
|
|
|