Agenda (overzicht en detail)¶
Doel & URL('s)¶
Agenda van GB-evenementen (toerustingsavonden, vergaderingen, e.d.). Voor alle bezoekers.
- Overzicht:
/agenda/— CPT-archief vangb-event. - Detail:
/agenda/{slug}/— singlegb-event.
Overzichts-URL is een CPT-archief
De WP-pagina "Evenementen" (#458) staat op dezelfde URL met een verwijzing naar een niet-bestaand template; het CPT-archief wint. De pagina dient alleen als link-doel in de thema-optie GB_events_archive.
Opbouw¶
Overzicht /agenda/¶
Layout met sidebar rechts:
h1"Agenda".- Grid met uitsluitend komende events (minstens één datum ≥ vandaag), oplopend gesorteerd op eerste datum:
- Items 1–2 groot: afbeelding met overlay (titel, datum, tijd "xx uur").
- Verdere items compact met datumblok (dag + maand), titel-link, volledige datum en tijd.
- Paginering (zie Bekende afwijkingen: functioneel dood).
- Sidebar rechts: alleen de sidebar-CTA.
Lege staat: geen komende events → lege lijst (op de productiedata van het meetmoment was dit de feitelijke situatie).
Detail /agenda/{slug}/¶
Layout met sidebar rechts:
- Beeldheader met titel-overlay, alleen bij een eigen afbeelding; zonder eigen afbeelding een
h1in de content. - Intro als lead-paragraaf + hoofdtekst (
event_text) + eventuele flexibele blokken (event_components, zelfde layouts als op standaardpagina's). - Footer: auteursblok (op productie nooit gevuld) + share-blok "Deel dit evenement:".
- Sidebar rechts — infoblok "Informatie" (
c-event-details):- Per rij uit de datums-repeater: "Datum: {D j M. Y}" + tijd met suffix "uur" (alleen indien gevuld).
- "Locatie" en "Kosten" — elk alleen indien ingevuld.
Databronnen¶
| Gegeven | Bron |
|---|---|
| Events (overzicht) | Alle {prefix}-event-types met minstens één event_dates_$_event_date >= vandaag, meta Websites LIKE 'GB'; sortering sort_date ASC (meta sort_date = eerste datumrij, automatisch gevuld bij opslaan) |
| Afbeelding | ACF event_image (fallback: optie GB_fallback_image) |
| Intro | ACF event_intro (overzicht: eerste 130 tekens) |
| Hoofdtekst | ACF event_text + flexible content event_components |
| Datums/tijden | ACF-repeater event_dates (event_date date picker, event_time time picker) |
| Locatie / kosten | ACF event_location; event_costs staat niet meer in de ACF-JSON en kan alleen bij oude data als losse post_meta gevuld zijn (zie afwijkingen) |
Gedrag & rollen¶
- Publiek; geen toegangschecks, geen rolverschillen.
- Events in het verleden verschijnen niet in het overzicht (maar de detailpagina blijft bereikbaar via de directe URL).
- Cross-sub-site: WV/CGC-events die GB-zichtbaar zijn, verschijnen in de GB-agenda met
?t=GB-link.
Acceptatiecriteria¶
Overzicht¶
- Als anonieme bezoeker op
/agenda/zie ikh1"Agenda" en uitsluitend events met minstens één datum vandaag of later, oplopend gesorteerd op eerste datum. - Als bezoeker zijn de eerste 2 events groot met afbeelding-overlay en de verdere events compact met datumblok (dag + maand uit de eerste datumrij).
- Als bezoeker toont een event met ingevulde tijd de tijd met suffix "uur"; zonder tijd wordt geen tijd getoond.
- Als bezoeker klik ik op een event, dan navigeer ik naar
/agenda/{slug}/. - Als er geen komende events zijn, dan is de lijst leeg (geen events uit het verleden zichtbaar).
- Als bezoeker staat in de sidebar de sidebar-CTA.
Detail¶
- Als bezoeker op een event mét eigen afbeelding zie ik een beeldheader met titel-overlay; zonder eigen afbeelding een gewone
h1. - Als bezoeker zie ik intro en hoofdtekst van het event.
- Als bezoeker toont het infoblok "Informatie" álle datumrijen uit de repeater, elk als "Datum: {datum}" met tijd-suffix "uur" indien gevuld.
- Als bezoeker verschijnen de regels "Locatie" en "Kosten" alleen wanneer die velden gevuld zijn.
- Als bezoeker staat onder het event het share-blok "Deel dit evenement:".
- Als bezoeker geeft een niet-bestaande slug (
/agenda/bestaat-niet/) een 404-pagina met HTTP-status 404.
Bekende afwijkingen¶
NIET nabouwen in Next.js — wel vermelden in het testrapport
- De paginering van het agenda-overzicht is functioneel dood: de pagineringslinks worden berekend over álle events (inclusief verleden, 98 op productie → 5 pagina's), terwijl de getoonde lijst uit een eigen "komende events"-query zonder paginaparameter komt.
/agenda/page/2/toont daardoor dezelfde lijst als pagina 1. Rebuild-beslispunt: paginering verwijderen óf werkend maken over de komende events. - De velden
event_type,event_author,event_costsenevent_categoryworden in code gelezen maar staan niet in de ACF-JSON (waarden bestaan hooguit als losse post_meta); het auteursblok is op productie nergens zichtbaar. - Een lijst "coming-events" wordt voor de detailpagina berekend maar nergens gerenderd (dode data).
- De WP-pagina "Evenementen" (#458) is onbereikbaar (overschaduwd door het CPT-archief); alleen relevant als link-doel.