Sjablonen¶
Open Forms ondersteunt sjablonen voor verschillende aspecten. Sjablonen zijn teksten die aangepaste kunnen worden op basis van het ingevulde formulier.
Note
Voor de ontwikkelaars documentatie, zie Templating.
Momenteel worden sjablonen gebruikt voor:
Bevestigingsmail
Formulier opslaan e-mail
Bevestigingspagina
Registratie e-mail
De tekst kan in deze elementen aangepast worden met variabelen en voorwaardelijke weergave. De variabelen die beschikbaar zijn, zijn afhankelijk van het type sjabloon en het formulier.
Stel, we hebben een formulier met daarin onderstaande velden en een gebruiker heeft voor elk formulierveld een bepaalde waarde ingevuld. Technisch heeft elk veld een eigenschap-attribuut. Dit attribuut identificeert elk veld uniek en dit is ook het attribuut dat we gebruiken als variabele.
Variabele |
Waarde |
---|---|
leeftijd |
19 |
geslacht |
M |
voornaam |
John |
achternaam |
Doe |
Hoe het werkt¶
Variabelen¶
Met behulp van variabelen kunt u de waarden uit formuliervelden toevoegen aan de sjabloon.
Om dit te doen gebruikt u de naam van de eigenschap tussen dubbele accolades:
{{ <eigenschap> }}
. Hierbij is <eigenschap>
de daadwerkelijk naam van
de eigenschap, bijvoorbeeld: {{ leeftijd }}
.
Voorbeeld¶
Hallo {{ voornaam }} {{ achternaam }}!
Hallo John Doe!
Voorwaardelijke weergave¶
Met behulp van voorwaardelijke weergave kunt u bepaalde teksten in sjablonen tonen of verbergen op basis van bepaalde voorwaarden. Dit zijn zogenaamde Als dit dan dat-constructies.
Om dit te doen kunt u {% if <eigenschap> %}
, {% elif <eigenschap> %}
,
{% else %}
en {% endif %}
opnemen in sjablonen. De voorwaarde
(if <eigenschap>
) wordt geëvalueerd naar waar of onwaar. Indien waar, dan
wordt de tekst tussen twee van de {% %}
-instructies weergeven. Een
if
-instructie moet worden afgesloten met een endif
-instructie.
U kunt and
en or
gebruiken om meerdere eigenschappen
te evalueren
en u kunt variabelen vergelijken met een bepaalde waarde door verschillende
operatoren te gebruiken: ==
(gelijk aan), !=
(niet gelijk aan), >
(groter dan) of <
(kleiner dan). De laatste twee kunnen alleen met
numerieke waarden.
Als u geen vergelijking maakt, controleert de if
-instructie simpelweg of
de waarde van de eigenschap
niet leeg is. Ten slotte kunt u controleren
of een variabele leeg is door not
ervoor te zetten:
{% if not <eigenschap> %}...
Het is mogelijk om voorwaarden binnen andere voorwaarden te gebruiken.
Voorbeeld¶
Hallo {% if geslacht == 'M' %} Dhr. {% elif geslacht == 'V' %} Mevr. {% else %} Dhr/Mevr. {% endif %} {{ achternaam }}!
{% if leeftijd < 21 and voornaam %} Hallo {{ voornaam }} {% else %} Hallo {{ achternaam }} {% endif %}
Hallo meneer Doe!
Hoi Joe!
Formattering van variabelen¶
Vaak wilt u variabelen op een bepaalde manier formatteren.
Dit is mogelijk met behulp van de sjabloonfilters die standaard ingebouwd
zijn. Alle beschikbare filters zijn gedocumenteerd op de
Django defaultfilters reference. Het patroon is typisch:
{{ <variable>|<sjabloonfilter> }}
Hieronder vindt u een tabel met vaak-voorkomende patronen.
Expressie |
Voorbeeld waarde |
Toelichting |
---|---|---|
|
|
Datum van vandaag, tekstueel |
|
|
Datum van vandaag, d/m/y |
|
|
Huidige maand |
|
|
Huidige dag |
|
|
Huidig jaar |
|
|
Huidige maandnaam |
|
|
Huidige dagnaam |
|
|
ISO-8601 weeknummer |
|
|
Huidig tijstip (uren en minuten) |
|
|
Huidig tijstip (uren, minuten en seconden) |
|
|
Terugvalwaarde indien de variabele “leeg” is |
|
|
Weergave van bytes (nummer) in leesbare vorm |
|
|
Weergave op basis van |
|
|
Equivalent van de som |
|
|
Verminder de variabele |
|
|
Rond een getal af op één decimaal als er een decimaal gedeelte is |
|
|
Indien er geen decimaal gedeelte is, toon dan geen decimalen |
|
|
Rond altijd het getal af op twee decimalen |
|
|
Rond het getal af op twee decimalen als er een decimaal gedeelte is |
|
|
De |
|
|
Geef de waarde (als integer) zonder groepering van duizendtallen |
|
|
Voeg elementen in een lijst van waarden samen, gescheiden door een komma |
|
|
Bereken de lengte van een lijst of string |
|
|
Converteer een tekst naar kleine letters |
|
|
Converteer een tekst naar hoofdletters |
|
|
Tijd geleden, relatief ten opzichte van “nu” |
|
|
Tijd geleden, relatief ten opzichte van de
variabele |
|
|
Tijd tot, relatief ten opzichte van “nu” |
|
|
Tijd tot, relatief ten opzichte van de variabele
|
|
|
Maak alle woorden startend met hoofdletter, de rest worden kleine letters |
|
|
Breek tekst af tot 5 karakters |
|
|
Breek tekst af tot 3 woorden |
|
|
Maak hyperlinks in de variabele klikbaar |
|
|
|
|
|
Geef het eerste element in een lijst van waarden terug |
Je kan ook meerdere filters combineren om geavanceerde manipulaties te doen, bijvoorbeeld:
{{ today|date:'Y'|add:"-1"|stringformat:"i" }}
In het jaar 2024 produceert dit de output 2023
:
today
is eendatetime
met de waarde 29 februari 2024today|date:'Y'
leidt tot enkel het jaar, dus2024
1
aftrekken van2024
geeft2023
Tot slot wordt
2023
als integer weergegeven zodat de output2023
is en niet2.023
(dus zonder groepering van duizendtallen)
Note
Sjablonen worden in dezelfde taal/localisatie gerenderd als de taal van de inzending.
Template tags¶
De volgende template tags kunnen ook worden gebruikt in opmaakcomponenten.
get_value
Geeft de mogelijkheid om een waarde uit een sleutel-waarde variabele te halen. Bijvoorbeeld, als deze variabele in het formulier bestaat:
eenVariabele = {"optie 1": "waarde 1", "optie 2": "waarde 2"}
Dan zal de template tag get_value
de waarde waarde 1
teruggeven:
{% get_value eenVariabele 'optie 1' %}
Bevestigingsmail¶
De bevestigingsmail is een optionele e-mail die wordt verzonden wanneer een gebruiker een formulier verstuurd. De bevestigingsmail heeft toegang tot alle gegevens uit het formulier en de waarden ingevuld door de gebruiker.
Als een formulier een medeondertekenencomponent bevat, dan wordt na het ondertekenen een bevestigingsmail gestuurd naar de hoofdpersoon die het formulier heeft ingestuurd. De medeondertekenaar wordt hierbij in de CC opgenomen en ontvangt deze e-mail dus ook.
Speciale instructies
Dit zijn aanvullende variabelen en instructies die beschikbaar zijn voor de sjabloon. Als een variabele niet beschikbaar maar wel aanwezig is in het sjabloon, dan wordt deze niet getoond.
Variabele |
Beschrijving |
---|---|
|
Kop “Samenvatting” gevolgd door een volledige samenvatting van alle formuliervelden die zijn gemarkeerd om in de e-mail weer te geven. |
|
De naam van het formulier. |
|
De datum waarop het formulier is verzonden. |
|
De openbare referentie van de inzending, bijvoorbeeld het zaaknummer. |
|
Kop “Afspraakinformatie” gevolgd door de afspraakgegevens, zoals product, locatie, datum en tijdstip. |
|
Zonder kop, geeft dit de tekst weer uit het optionele veld “informatie” van het product dat aan dit formulier is gekoppeld. |
|
Kop “Betaalinformatie” gevolgd door een betaallink indien nog niet is betaald en anders de betalingsbevestiging. |
|
Kop “Medeondertekeneninformatie” gevolgd door informatie over de status van medeondertekenen. |
Note
De speciale instructie {% summary %}
is verouderd en zal vanaf versie 3.0.0 niet meer beschikbaar zijn.
Voorbeeld¶
Beste {{ voornaam }} {{ achternaam }},
U heeft via de website het formulier "{{ form_name }}" verzonden op {{ submission_date }}.
Uw referentienummer is: {{ public_reference }}
{% cosign_information %}
Let u alstublieft op het volgende:
{% product_information %}
{% confirmation_summary %}
{% appointment_information %}
{% payment_information %}
Met vriendelijke groet,
Open Formulieren
Beste John Doe,
U heeft via de website het formulier "Voorbeeld" verzonden op 17 januari 2022.
Uw referentienummer is: OF-123456
**Medeondertekenen informatie**
Dit formulier wordt pas in behandeling genomen na medeondertekening. Er is een verzoek verzonden naar cosigner@test.nl.
Let u alstublieft op het volgende:
Vergeet uw paspoort niet mee te nemen.
**Samenvatting**
- Voornaam: John
- Achternaam: Doe
**Afspraak informatie**
*Product(en)*
- Product 1
*Locatie*
Straat 1
1234 AB Stad
*Datum en tijd*
21 januari 2022, 12:00 - 12:15
*Opmerkingen*
Geen opmerkingen
Als u uw afspraak wilt annuleren of wijzigen kunt u dat hieronder doen.
Afspraak annuleren: https://example.com/...
Afspraak wijzigen: https://example.com/...
**Betaalinformatie**
Betaling van EUR 10,00 vereist. U kunt het bedrag betalen door op onderstaande link te klikken.
Ga naar de betalingspagina: https://example.com/...
Met vriendelijke groet,
Open Formulieren
Formulier opslaan e-mail¶
Speciale instructies
Dit zijn aanvullende variabelen en instructies die beschikbaar zijn voor de sjabloon. Als een variabele niet beschikbaar maar wel aanwezig is in het sjabloon, dan wordt deze niet getoond.
Variabele |
Beschrijving |
---|---|
|
De naam van het formulier. |
|
De datum waarop het formulier is opgeslagen. |
|
De datum waarop het formulier zal vervallen. |
|
De URL om het formulier te hervatten. Deze URL begint al met |
Bevestigingspagina¶
De bevestigingspagina is de pagina die wordt weergegeven nadat het formulier is verstuurd. De bevestigingspagina heeft toegang tot alle gegevens uit het formulier en de waarden ingevuld door de gebruiker.
Speciale instructies
Dit zijn aanvullende variabelen en instructies die beschikbaar zijn voor de sjabloon. Als een variabele niet beschikbaar maar wel aanwezig is in het sjabloon, dan wordt deze niet getoond.
Variabele |
Beschrijving |
---|---|
|
De openbare referentie van de inzending, bijvoorbeeld het zaaknummer. |
|
Geeft de tekst weer uit het optionele veld “informatie” van het product dat aan dit formulier is gekoppeld. |
Voorbeeld¶
Bedankt voor uw inzending.
{% product_information %}
Bedankt voor uw inzending.
**Productinformatie**
Neem alstublieft uw afspraakbevestiging mee.
Registratie e-mail¶
De registratie-e-mail is een optionele e-mail die wordt verzonden wanneer een formulier is geconfigureerd om de ‘e-mailregistratie-backend’ te gebruiken. De registratie-e-mail heeft toegang tot alle gegevens uit het formulier en de waarden ingevuld door de gebruiker.
Speciale instructies
Dit zijn aanvullende variabelen en instructies die beschikbaar zijn voor het sjabloon. Als een variabele niet beschikbaar maar wel aanwezig is in het sjabloon, dan wordt deze niet getoond.
Variabele |
Beschrijving |
---|---|
|
De naam van het formulier. |
|
Het moment (datumtijd) waarop het formulier werd ingezonden. |
|
De publieke referentie van de inzending. |
|
Indicatie of de gebruiker wel of niet heeft betaald. |
|
De referentie van de betaling. |
|
De taal van het formulier die werd ingezonden, bijvoorbeeld ‘nl’. |
|
De voorletters, achternaam en ID (bijvoorbeeld het BSN) van de persoon die het formulier heeft mede-ondertekend. |
|
Kop “Samenvatting” gevolgd door een volledige samenvatting van alle formuliervelden en gebruikersvariabelen. |
Voorbeeld¶
{% if payment_received %}
Betaling ontvangen voor {{ form_name }} (verzonden op {{ completed_on }})
Betalings-order ID: {{ payment_order_id }}
{% else %}
Inzendingdetails van {{ form_name }} (verzonden op {{ completed_on }})
{% endif %}
Onze referentie: {{ public_reference }}
Inzendingstaal: {{ submission_language }}
{% registration_summary %}
{% if co_signer %}
Mede-ondertekend door: {{ co_signer }}
{% endif %}
Inzendingdetails van Aanvraag stadspas (verzonden op 10:50:25 29-03-2023)
Onze referentie: OF-H7S6BE
Inzendingstaal: Nederlands
**Samenvatting**
**Uw gegevens**
- Voornaam: John
- Achternaam: Doe
- Postcode: 1111 AA
- Huisnummer: 1
**Uw Situatie**
- Heeft u een uitkering: Nee
- Heeft u een werkgever: Ja
**Variabelen**
- nettoInkomen: 490,0
- totaalSchuld: 500,0
Mede-ondertekend door: N. Doe (BSN: 123456789)
Objecten API registratie¶
Note
We adviseren om gebruik te maken van de Variabelekoppelingen in plaats van sjablonen.
De Objecten API-registratiebackend maakt een object aan in de geconfigureerde Objecten API met de gegevens van een inzending. Een voorbeeld van de JSON die naar de Objecten API wordt gestuurd:
{
"type": "https://objecttype-example.nl/api/v2/objecttype/123",
"record": {
"typeVersion": 1,
"data": {},
"startAt": "2023-01-01"
}
}
De structuur van het veld data
is per formulier instelbaar met een sjabloon. De Objecten API-registratie heeft toegang tot
alle gegevens uit het formulier en de waarden ingevuld door de gebruiker.
Note
U bent waarschijnlijk gewend om in andere sjablonen een variabele direct in het sjabloon te gebruiken, zoals
{{ voornaam }}
. Echter, in de sjablonen voor de Objecten API dient u deze als variables.<variabele>
te refereren,
bijvoorbeeld {{ variables.voornaam }}
. Dit zal in de toekomst voor alle sjablonen gelden.
See also
See Kaartmateriaal en registratie in de Objecten API for a more detailed example.
Voor formulieren die een betaling vereisen, is het ook mogelijk om informatie over de betaling toe te voegen.
Als de gebruiker betaalt, kan de status van de betaling in de Object API bijgewerkt worden. Hier ook is de structuur van het
record
veld per formulier instelbaar met een sjabloon.
In dit sjabloon kunnen alleen de inzendingsvariabelen (variables.<naam van variabele>
) en de payment
variabele
(zie tabel hieronder) gebruikt worden.
Note
De payment.amount
in een JSON sjabloon geeft een number
. Het objecttype schema zou de nauwkeurigheid van
het amount
veld moeten vastleggen door bijvoorbeeld type: number, multipleOf: 0.01
te specificeren.
Speciale instructies
Dit zijn aanvullende variabelen en instructies die beschikbaar zijn voor het sjabloon. Als een variabele niet beschikbaar maar wel aanwezig is in het sjabloon, dan wordt deze niet getoond.
Variabele |
Beschrijving |
---|---|
|
Het productaanvraag type. |
|
De publieke referentie van de inzending. |
|
Het interne ID van de inzending (UUID). |
|
De taal waarin de gebruiker het formulier invulde, bijvoorbeeld ‘nl’ of ‘en’. |
|
De URL van het inzendingsrapport (in PDF formaat) in de documenten API. |
|
De URL van het inzendingsrapport (in CSV formaat) in de documenten API. Dit document is mogelijk niet aangemaakt |
|
JSON met |
|
Een lijst met de URLs van documenten toegevoegd door de inzender. De URLs verwijzen naar het geregistreerde document in de Documenten API. |
|
Sluit de gerefereerde variabele (variables.map) in als JSON. |
|
Indicatie of de betaling voltooid is. |
|
Bedrag dat betaald moet worden. |
|
Lijst van bestelling IDs die naar de externe betaalprovider meegestuurd zijn. |
Voorbeeld¶
{
"form_data": {% json_summary %},
"type": "{{ productaanvraag_type }}",
"bsn": "{{ variables.auth_bsn }}",
"pdf_url": "{{ submission.pdf_url }}",
"attachments": {% uploaded_attachment_urls %},
"submission_id": "{{ submission.kenmerk }}",
"language_code": "{{ submission.language_code }}",
"public_reference": "{{ submission.public_reference }}"
}
{
"form_data": {
"voorNaam": "Jane",
"achterNaam": "Doe"
},
"type": "terugbelnotitie",
"bsn": "123456782",
"pdf_url": "http://some-url.nl/to/pdf/report",
"attachments": ["http://some-url.nl/to/attachment1", "http://some-url.nl/to/attachment2"],
"submission_id": "c305a56f-c56c-49bc-9d94-3e301d0b8bf8",
"language_code": "nl",
"public_reference": "OF-12345"
}