Parti condizionali
Quattro parole — if, elseif, else, endif — e dove metti il tag decide quanto scompare.
{% if invoice.total > 1000 %}
…questo blocco…
{% elseif invoice.total > 500 %}
…oppure questo…
{% else %}
…altrimenti questo…
{% endif %}
| Dove si trova il tag | Che cosa scompare |
|---|---|
| Da solo in un paragrafo | L'intero blocco fra il tag e il suo endif. Dove c'erano i tag
non resta una riga vuota. |
| Da solo in una cella di tabella | L'intera riga. Metti il tag di apertura in una riga e quello di chiusura in un'altra, con in mezzo le righe da nascondere. |
| Dentro una frase | Solo quelle parole:
Dear {% if vip %}valued {% endif %}customer. |
Non servono più i prefissi tr e p.
Funzionano ancora se li usi già — un tag a cui hai messo il prefisso a mano resta
esattamente come l'hai scritto — ma un semplice
{% if %} da solo in una cella
nasconde già la riga.
Che cosa può dire una condizione
| Scrivi | Vera quando |
|---|---|
invoice.total > 1000 |
un numero è maggiore. Anche <, >=,
<= |
customer.country = 'IT' |
i valori coincidono. Maiuscole e minuscole sono ignorate, e '10' è uguale a
10 — la stessa tolleranza dell'unione dei campi |
invoice.total != invoice.paid |
due tuoi campi sono diversi |
order.status in ['shipped', 'delivered'] |
il valore è uno di una lista |
exists customer.vat |
il campo è stato inviato |
empty notes |
il campo manca, è vuoto, è zero o è una lista vuota |
a and b · a or b · not a |
combinate, con le parentesi dove servono |
Un campo mai inviato rende una condizione falsa invece
di far fallire il documento. Lo stesso vale per 0, null, una stringa
vuota e una lista vuota — ed è su questo che si basa
{% if discount %}.
Una sezione nascosta dice perché. Quando una condizione risulta
falsa, la generazione registra il motivo con il valore che ha visto —
invoice.total (800) > 1000 is false — e lo mostra nella pagina del
documento nella console. Di solito è tutta l'indagine.
Le condizioni fuori dall'elenco qui sopra sono comunque accettate e passate al motore dei modelli così come sono scritte; semplicemente non possono produrre quella frase.