docs(form-builder): document S3a PR 2 complex field types and update FORM-05 stub note
- Add VitePress pages for AVAILABILITY_PICKER and SECTION_PRIORITY
and a TAG_PICKER configuration note. Wire them into the organisator
sidebar under a new Formulieren section alongside the existing
"Wat is een formulier" page.
- BACKLOG.md: nuance FORM-05 — the stub-shaped behaviour for public
event_registration submissions is already shipping via the existing
TriggerPersonIdentityMatchOnFormSubmit listener (writes 'pending').
The real work (PersonIdentityService::detectMatchesByValues + an
extra branch in resolveStatus) is what remains. Added a done entry
for S3a PR 2 to the Opgeloste items list.
- API.md: add VALIDATION_FAILED to the public-form error code table
and document the SECTION_PRIORITY shape error messages (Dutch copy
served under errors."values.{slug}").
- COPY_CATALOGUE.md: new S3a PR 2 section capturing the seeder
help_text, the IdentityMatchBanner copy (clearly marking the
backend message as authoritative), all empty/error state copy for
the three new components, and the SECTION_PRIORITY shape error
strings.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -124,6 +124,27 @@ export default defineConfig({
|
||||
{ text: "Berichten", link: "/organizer/communication/messages" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Formulieren",
|
||||
items: [
|
||||
{
|
||||
text: "Wat is een formulier",
|
||||
link: "/organizer/forms/concepts/wat-is-een-formulier",
|
||||
},
|
||||
{
|
||||
text: "Beschikbaarheid",
|
||||
link: "/organizer/forms/field-types/availability-picker",
|
||||
},
|
||||
{
|
||||
text: "Sectievoorkeur",
|
||||
link: "/organizer/forms/field-types/section-priority",
|
||||
},
|
||||
{
|
||||
text: "Tags kiezen",
|
||||
link: "/organizer/forms/field-types/tag-picker",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
"/volunteer/": [
|
||||
{
|
||||
|
||||
72
docs/organizer/forms/field-types/availability-picker.md
Normal file
72
docs/organizer/forms/field-types/availability-picker.md
Normal file
@@ -0,0 +1,72 @@
|
||||
---
|
||||
title: Beschikbaarheid opgeven (AVAILABILITY_PICKER)
|
||||
description: Laat vrijwilligers aanvinken op welke dagdelen ze kunnen werken — gekoppeld aan de tijdslots van je evenement.
|
||||
tags: [formulieren, veldtypes, beschikbaarheid, tijdslot, vrijwilliger]
|
||||
---
|
||||
|
||||
# {{ $frontmatter.title }}
|
||||
|
||||
{{ $frontmatter.description }}
|
||||
|
||||
## Wat doet dit veld
|
||||
|
||||
Het veldtype **Beschikbaarheid** toont alle tijdslots van het evenement
|
||||
waar het formulier bij hoort, en laat de invuller aanvinken op welke
|
||||
slots hij of zij kan werken. Je gebruikt dit veld in
|
||||
vrijwilligersregistraties, zodat je bij het indelen van diensten direct
|
||||
weet wanneer iemand beschikbaar is.
|
||||
|
||||
Crewli haalt de opties automatisch op: alle tijdslots van het evenement
|
||||
(of bij een festival ook van de onderliggende dagen) met
|
||||
**persoonstype vrijwilliger**. Je hoeft zelf geen opties toe te voegen
|
||||
— zodra je een tijdslot aanmaakt, verschijnt die in het formulier.
|
||||
|
||||
## Hoe ziet het eruit voor de invuller
|
||||
|
||||
De vrijwilliger ziet de tijdslots gegroepeerd per dag, bijvoorbeeld:
|
||||
|
||||
> **Zaterdag 11 juli**
|
||||
>
|
||||
> ☐ Zaterdag middag (12:00–18:00)
|
||||
> ☐ Zaterdag avond (18:00–02:00)
|
||||
|
||||
Bij een festival met meerdere dagen verschijnt boven elk blok de naam
|
||||
van het onderliggende evenement (bijvoorbeeld "Dag 1 — Vrijdag"), zodat
|
||||
duidelijk is bij welk programma-onderdeel het tijdslot hoort. Bij een
|
||||
flat evenement — alle tijdslots onder één evenement — laat Crewli die
|
||||
extra kop weg, zodat de lijst rustig blijft.
|
||||
|
||||
## Wanneer gebruik je dit veld
|
||||
|
||||
- **Vrijwilligersregistratie** voor een festival of evenement met
|
||||
meerdere dagdelen.
|
||||
- **Aanmeldformulieren** waar je in de intake al wil weten welke
|
||||
slots iemand kan draaien.
|
||||
- **Post-event wijzigingen** — een vrijwilliger die achteraf nog een
|
||||
slot aanvult.
|
||||
|
||||
Gebruik dit veld **niet** wanneer je op shift-niveau (niet tijdslot)
|
||||
wil uitvragen — daar is het dienstenoverzicht in het
|
||||
vrijwilligersportaal voor bedoeld.
|
||||
|
||||
## Koppeling met diensten
|
||||
|
||||
Als je het formulier bij een evenement publiceert, koppelt Crewli de
|
||||
aangevinkte slots automatisch aan de juiste persoon bij het indelen.
|
||||
Hiermee kun je bij het toewijzen van diensten direct filteren op
|
||||
"alleen personen die voor dit tijdslot beschikbaar zijn".
|
||||
|
||||
## Rollen en toegang
|
||||
|
||||
| Rol | Kan veld toevoegen aan formulier | Kan inzendingen lezen |
|
||||
|---|---|---|
|
||||
| Organisatie-admin | Ja | Ja |
|
||||
| Evenementmanager | Ja | Ja |
|
||||
| Vrijwilligerscoördinator | Nee | Ja |
|
||||
| Vrijwilliger | Nee | Alleen eigen inzending |
|
||||
|
||||
## Gerelateerde pagina's
|
||||
|
||||
- [Wat is een formulier](../concepts/wat-is-een-formulier.md)
|
||||
- [Tijdslots](../../shifts/time-slots.md)
|
||||
- [Sectievoorkeur opgeven](./section-priority.md)
|
||||
84
docs/organizer/forms/field-types/section-priority.md
Normal file
84
docs/organizer/forms/field-types/section-priority.md
Normal file
@@ -0,0 +1,84 @@
|
||||
---
|
||||
title: Sectievoorkeur opgeven (SECTION_PRIORITY)
|
||||
description: Laat vrijwilligers hun top-voorkeuren voor secties op volgorde zetten, zodat je bij het indelen de meest wenselijke plek weet.
|
||||
tags: [formulieren, veldtypes, sectie, voorkeur, vrijwilliger]
|
||||
---
|
||||
|
||||
# {{ $frontmatter.title }}
|
||||
|
||||
{{ $frontmatter.description }}
|
||||
|
||||
## Wat doet dit veld
|
||||
|
||||
Het veldtype **Sectievoorkeur** laat de invuller een top-lijst van
|
||||
secties maken: eerste keus, tweede keus, enzovoort. Bij het indelen
|
||||
van diensten zie je per persoon direct waar ze het liefst werken, en
|
||||
kun je daar — waar mogelijk — op sturen.
|
||||
|
||||
Je hoeft zelf geen opties te configureren. Crewli toont automatisch
|
||||
alle secties van het evenement die je hebt gemarkeerd als zichtbaar op
|
||||
de registratiepagina. Bij een festival worden ook de secties van de
|
||||
onderliggende dagen getoond, en secties met dezelfde naam op meerdere
|
||||
dagen worden samengevoegd tot één optie.
|
||||
|
||||
## Hoe ziet het eruit voor de invuller
|
||||
|
||||
De vrijwilliger ziet twee lijstjes onder elkaar:
|
||||
|
||||
- **Jouw voorkeuren** — de secties die al gekozen zijn, op volgorde
|
||||
genummerd (1, 2, 3…). Je kunt ze op desktop slepen om de volgorde te
|
||||
wijzigen; op mobiel tik je het kruisje om een keuze te verwijderen
|
||||
en kies je opnieuw.
|
||||
- **Nog te kiezen** — de overgebleven secties, als aantikbare kaarten.
|
||||
Tikken voegt de sectie als volgende voorkeur toe.
|
||||
|
||||
Bij elke sectie kun je een korte omschrijving meegeven
|
||||
(bijvoorbeeld "Tap bier en drankjes voor festivalgangers") — die
|
||||
verschijnt onder de sectienaam en helpt de invuller te kiezen.
|
||||
|
||||
## Configuratie
|
||||
|
||||
### Maximum aantal voorkeuren
|
||||
|
||||
Standaard mag een invuller maximaal **5 voorkeuren** opgeven. Wil je
|
||||
minder? Zet `max_priorities` in de validatieregels van het veld op
|
||||
bijvoorbeeld 3 — dan kan de invuller alleen een top-3 maken. Hoger dan
|
||||
5 wordt niet toegestaan.
|
||||
|
||||
### Welke secties verschijnen
|
||||
|
||||
Crewli toont alleen secties die:
|
||||
|
||||
- **Zichtbaar op registratiepagina** zijn (zet je aan op de sectie).
|
||||
- Niet als **cross-event sectie** zijn gemarkeerd (die zijn bedoeld
|
||||
voor interne indeling, niet voor vrijwilligersvoorkeur).
|
||||
|
||||
Wil je een sectie niet meer tonen op het formulier? Zet dan
|
||||
"Zichtbaar op registratiepagina" uit — je sectie blijft gewoon bestaan
|
||||
voor intern gebruik.
|
||||
|
||||
## Wanneer gebruik je dit veld
|
||||
|
||||
- **Vrijwilligersregistratie** wanneer je meerdere secties hebt en
|
||||
vrijwilligers liever op de ene dan op de andere plek staan.
|
||||
- **Crewaanmelding** voor een festival waar sommige secties populair
|
||||
zijn en je inzicht wil in de verdeling.
|
||||
|
||||
Gebruik het niet wanneer je maar één sectie hebt, of wanneer indeling
|
||||
puur op basis van beschikbaarheid gebeurt — dan is een
|
||||
enkele-keuze-veld of helemaal geen veld duidelijker.
|
||||
|
||||
## Rollen en toegang
|
||||
|
||||
| Rol | Kan veld toevoegen aan formulier | Kan inzendingen lezen |
|
||||
|---|---|---|
|
||||
| Organisatie-admin | Ja | Ja |
|
||||
| Evenementmanager | Ja | Ja |
|
||||
| Vrijwilligerscoördinator | Nee | Ja |
|
||||
| Vrijwilliger | Nee | Alleen eigen inzending |
|
||||
|
||||
## Gerelateerde pagina's
|
||||
|
||||
- [Wat is een formulier](../concepts/wat-is-een-formulier.md)
|
||||
- [Secties beheren](../../shifts/sections.md)
|
||||
- [Beschikbaarheid opgeven](./availability-picker.md)
|
||||
26
docs/organizer/forms/field-types/tag-picker.md
Normal file
26
docs/organizer/forms/field-types/tag-picker.md
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Tags kiezen (TAG_PICKER)
|
||||
description: Laat invullers hun eigen vaardigheden, certificaten of interesses aanvinken uit jouw tag-bibliotheek.
|
||||
tags: [formulieren, veldtypes, tags, vaardigheden, vrijwilliger]
|
||||
---
|
||||
|
||||
# {{ $frontmatter.title }}
|
||||
|
||||
{{ $frontmatter.description }}
|
||||
|
||||
## Configuratie: alleen specifieke categorieën tonen
|
||||
|
||||
Standaard toont een tag-veld **alle actieve tags** van je organisatie,
|
||||
gegroepeerd per categorie. Wil je dat de invuller alleen uit een
|
||||
bepaalde set kan kiezen — bijvoorbeeld alleen veiligheidscertificaten,
|
||||
niet persoonlijke voorkeuren — dan vul je in de validatieregels de
|
||||
gewenste categorieën in via `tag_categories`.
|
||||
|
||||
Tags zonder categorie verschijnen automatisch onder de kop
|
||||
**"Overig"**, zodat ze vindbaar blijven zonder dat je elke tag
|
||||
expliciet hoeft in te delen.
|
||||
|
||||
## Gerelateerde pagina's
|
||||
|
||||
- [Tags beheren](../../persons/tags.md)
|
||||
- [Wat is een formulier](../concepts/wat-is-een-formulier.md)
|
||||
Reference in New Issue
Block a user