Making your own templates
Template context¶
By default, all the variables for the given response are available through the value
variable in the template context. For example, given a form response with the following value:
{
"name": "Ashwin"
}
Using the template Hello, {{value.name}}
will resolve to Hello, Ashwin
.
View link¶
In the confirmation email template, you can use the view_link
variable to get a response view link. This renders a form response which is disabled. Just do:
Modify your response here: {{view_link}}.
The resulting view link will be equal to {CFF_URL}/{formId}?responseId={responseId}&mode=view
.
Note
The view link will only work if formOptions.responseCanViewByLink
is set to true; this value is set to false by default for security reasons.
Edit link¶
In the confirmation email template, you can use the edit_link
variable to get a response edit link. This renders the form, with the response data pre-filled in. Just do:
Modify your response here: {{edit_link}}.
The resulting view link will be equal to {CFF_URL}/{formId}?responseId={responseId}&mode=edit
.
Note
The edit link will only work if both formOptions.responseCanViewByLink
and formOptions.responseCanEditByLink
are set to true; both are set to false by default for security reasons.
Custom filters¶
Jinja2 has a filters feature that allows you to apply certain functions to context variables within the template. In addition to the built-in filters, CFF also supports the following custom filters:
format_date¶
format_date
formats a given date string (in "YYYY-MM-DD" format) to the "en" locale.
For example, the following template:
{{"2000-10-10" | format_date}}
Gives a result of Oct 10, 2000
.
format_payment¶
format_payment
formats a given amount in the specified currency.
For example, the following template:
{{200 | format_payment("USD")}}
Gives a result of $200
.
Note that this template is usually used with regard to paymentInfo
, so a common use case might look something like this:
{{paymentInfo.total | format_payment(paymentInfo.currency)}}