Maak zelf een simpele boekingspagina

Moeilijkheidsgraad

Elke vereniging of instelling die een activiteit organiseert, wil daarvoor een inschrijvingsformulier. Meestal is er een beperkt aantal deelnemers.

Hoe maak je nu een formulier dat bijhoudt hoeveel mensen er reeds zijn ingeschreven en hoe maak je dat het niet mogelijk is om te boeken eens het maximum aantal deelnemers werd bereikt? Er zijn modules voor, maar die zijn tamelijk zwaar en complex.

Werkwijze:

1) Maak een inhoudstype met de keuzemogelijkheden. Bijvoorbeeld... We hebben een bijscholing met max 5 personen die 2 x doorgaat . De mensen kunnen dus kiezen uit 2 data, maar telkens hebben we maar 5 plaatsen. Je ziet dat ik per datum een bepaald aantal keer de node herhaal. Je zou hier ook een nummering van de plaats kunnen voorzien. Als er veel nodes moeten aangemaakt worden verwijs ik naar Feeds en een CSV file om dit te doen. In neem nu node referentie, maar taxonomie referentie kan ook natuurlijk.

Screen001558.png

2) Maak een inhoudstype 'Boeking' met een referentieveld naar je inhoudstype met de keuzemogelijkheden. Zet het meervoudig als dit nodig is. Zo kan één persoon voor meerdere mensen boeken in zijn/haar naam.

Screen001573.png

Vanaf nu kan er geboekt worden.

Screen001574.png

Ik heb hier in mijn naam geboekt voor 3 personen op 27/10

Screen001563.png

3) Hoe maak je nu dat een volgende persoon niet meer kan gebruik maken van de reeds geboekte items? Een nieuwe boeking mag enkel dit zien. Er moeten drie plaatsen reeds gebruikt zijn.

Screen001569.png

We maken daarvoor eerste een view, waarbij we de plaatsen en de boekingen voor deze plaatsen tonen.

Screen001566.png

Er is een relatie nodig om de 2 inhoudstypes met elkaar te combineren.

Screen001564.png

Screen001575.png

Het veld Title komt 2 X voor. De tweede keer is het echter met de relatie:

Screen001565.png

Je krijgt nu dit.

Screen001566.png

Aangezien we echter de plaatsen waarvoor er reeds geboekt werd, willen verbergen moeten we ook nog een filter instellen. We willen enkel daar waar er nog plaats voor is.


Screen001567.png

Je ziet dat er nu een paar plaatsen ontbreken. Daar waar er reeds voor geboekt is...
Screen001576.png

4) Stel een entiteitsreferentie in om te gebruiken in je referentieveld.

Kopieer je view naar entiteitsreferentie.

Screen001560.png

Pas je veld aan in de widget naar je referentie.

Screen001562.png
Vanaf nu is je boekingspagina operatief. Nu nog enkel de toegangsrechten toekennen om de personen te laten inschrijven. Als alle plaatsen zijn bezet krijg je nog enkel de beschrijving te zien van het veld.

Screen001577.png