|
|
@@ -1521,6 +1521,63 @@ exacte veldnaam+type-specificatie (kost hem seconden per veld).
|
|
|
e.d.) zijn een **bewuste kopie** van `PUitgaanSliderComponent`/
|
|
|
`UitgaantabelKaartComponent` + een eigen cityid-loze API-call — geen
|
|
|
dode code, niet meenemen in opschoonacties.
|
|
|
+- **City-editor-stadsrechten (`field_town_access`) zijn sinds 2026-08-27
|
|
|
+ gemeente-niveau, niet meer plaats-niveau — taxonomie zelf (Provincie→
|
|
|
+ Gemeente→Plaats, vid 5) is en blijft 3 niveaus, alleen de rechten-laag
|
|
|
+ is versimpeld.** `custom_field_widget_form_alter()` in `custom.module`
|
|
|
+ (het enige stuk code dat `field_town_access` afdwingt, voor het
|
|
|
+ `field_act_state_municipality_tow`-veld op `activity`) leest de
|
|
|
+ opgeslagen tids nu als gemeenten en zoekt daar de kind-plaatsen bij op
|
|
|
+ (`taxonomy_term_hierarchy`, `h.parent IN (...)`, `vid = 5`) i.p.v. een
|
|
|
+ letterlijke tid-match — repareert meteen de oude array-vs-scalar-bug
|
|
|
+ (`array_column(...,'tid')` i.p.v. het hele veld doorgeven aan
|
|
|
+ `condition('tid', ...)`). Bewust **niet** de taxonomie zelf platgeslagen
|
|
|
+ naar 2 niveaus: de Flutter-app toont de Plaats-naam wél degelijk aan
|
|
|
+ eindgebruikers (horeca-kaarten, evenement-infopagina, fallback
|
|
|
+ `'Plaats onbekend'`), dus dat zou zichtbare precisie kosten + een
|
|
|
+ bulk-hertag-migratie vereisen. Volledige analyse + de patch staan in
|
|
|
+ het levende Artifact, zie [[drupal-events-inventory-artifact]].
|
|
|
+ - **Het veld `field_town_access` gebruikt widget `term_reference_tree`**
|
|
|
+ (vendored contrib-module) — om een admin bij het instellen van een
|
|
|
+ City-editor alleen gemeenten te laten aanvinken (geen Plaats-niveau
|
|
|
+ meer te zien/aan te vinken), moet je op dat veld (Manage Fields →
|
|
|
+ potlood-edit) de widget-instellingen aanpassen: **"Leaves only"
|
|
|
+ uitvinken** (anders krijgt alleen een knooppunt zónder kinderen —
|
|
|
+ dus Plaats — een vinkje; Provincie/Gemeente blijven dan puur
|
|
|
+ uitklap-navigatie zonder checkbox) én **"Maximum Depth" op `2`**
|
|
|
+ zetten (Provincie=niveau 1, Gemeente=niveau 2, Plaats=niveau 3 in
|
|
|
+ deze widget's telling — met `2` wordt Plaats niet meer opgebouwd/
|
|
|
+ getoond). Geen "minimum depth"-optie beschikbaar in deze widget, dus
|
|
|
+ een Provincie-rij krijgt na het uitvinken van "Leaves only" ook een
|
|
|
+ vinkje — puur een kwestie van zelf alleen op gemeente-niveau
|
|
|
+ aanvinken, geen harde blokkade tegen per ongeluk een provincie
|
|
|
+ kiezen (de code hierboven gaat er dan wel gewoon vanuit dat het een
|
|
|
+ gemeente is en zoekt de kind-termen op).
|
|
|
+ - **Widget-instellingen wijzigen raakt nooit al opgeslagen waarden —
|
|
|
+ alleen het bewerkformulier.** Oude, al-opgeslagen plaats-tids in
|
|
|
+ `field_town_access` verdwijnen niet vanzelf door de instelling te
|
|
|
+ wijzigen; je moet het account echt opnieuw opslaan. Bevestigd via
|
|
|
+ `_term_reference_tree_widget_validate()`: bij het opslaan wordt het
|
|
|
+ veld volledig herbouwd uit alléén wat op dat moment daadwerkelijk
|
|
|
+ *gerenderd* is in de boom (geen verborgen-oude-waarde-passthrough)
|
|
|
+ — dus zodra Max depth = 2 staat en je het account opnieuw opslaat
|
|
|
+ (ook zonder verder iets aan te raken), vallen niet-gerenderde
|
|
|
+ plaats-tids er vanzelf uit. Sneller/rechtstreeks via drush, zonder
|
|
|
+ door de UI te hoeven: `taxonomy_get_parents_all($tid)`-lengte === 3
|
|
|
+ identificeert een Plaats-tid (dezelfde check die `custom.module`
|
|
|
+ zelf ook gebruikt voor de vergelijkbare `?city=`-prefill-guard, zie
|
|
|
+ hieronder) — filter die eruit en `user_save()`.
|
|
|
+ - **De "Nieuw stadsactiviteit"-snelkoppelingen (View `places`, block
|
|
|
+ "Towns Owned By User", reverse-relatie op `field_town_access`)
|
|
|
+ blijven werken zonder wijziging** — die view is volledig
|
|
|
+ niveau-agnostisch, toont gewoon elke term die aan de gebruiker
|
|
|
+ gekoppeld is. Enige neveneffect: de link stuurt `?city=<tid>` mee,
|
|
|
+ en `custom_form_activity_node_form_alter()` vult het "Plaats"-veld
|
|
|
+ alléén automatisch voor als `count(taxonomy_get_parents_all($tid))
|
|
|
+ === 3` (dus alleen bij een echte Plaats-tid) — bij een gemeente-tid
|
|
|
+ slaat de auto-invulling gewoon over (geen crash), en moet de
|
|
|
+ gebruiker de plaats 1x zelf uit de (al correct beperkte) dropdown
|
|
|
+ kiezen.
|
|
|
- Favorieten/login zijn P0. Backend-endpoint bestaat al; Drupal 7
|
|
|
views die de respons voeden hebben soms nog aanpassing nodig.
|
|
|
- **Fout-/leeg-afhandeling bij API-calls: het "geen enkele
|