Page en cours de construction, accessible uniquement aux usagers connectés avec le compte Debug
Les conditions
Les conditions permettent
Formulaire / Modèle de fiche
Page
Condition d'affichage
Conditions de sortie
Condition qui doit être satistifaite Message d'erreur si condition non satisfaite
Champ
Condition d'affichage
Workflow
Condition d’exécution de l’action
Les conditions permettent de rendre un formulaire interactif et dynamique en modifiant son comportement en fonction des réponses des utilisateurs. Voici un guide clair et détaillé sur les fonctionnalités clés et les différents types de conditions utilisables.
Les fonctionnalités clés
Les conditions, écrites en syntaxe Django, sont des formules qui évaluent si une expression est vraie ou fausse. Elles permettent de :
Afficher ou masquerun champ ou une page.
Permettre ou bloquerla navigation vers une page suivante.
Déclencherune action dans un workflow.
Pour vérifier qu’une condition fonctionne, utilisez les outils d’inspection dans l’interface.
Attention: Les conditions ne doivent pas être confondues avec les gabarits, qui produisent du texte même si certains filtres ont des usages similaires.
Types de conditions
1. Conditions sur les dates
Les dates jouent un rôle fréquent dans les conditions. Voici quelques exemples d'utilisation :
Formatage des dates:
{{ today|date:"Y-m-d" }}: Affiche la date au format ISO (ex. : 2019-02-25).{{ today|date:"d/m/Y" }}: Affiche la date au format français (ex. : 25/02/2019).
Comparaisons entre dates:
form_var_date|date > today|date: Vrai si la date saisie est postérieure à aujourd’hui.form_var_date1|date > form_var_date2|date: Vrai si la date 1 est postérieure à la date 2.
Calculs sur les dates:
form_var_date|date|add_days:-2 >= today|date: Devient vrai 2 jours avant une échéance.form_var_date|date|add_days:30 <= today|date: Vrai si la date est inférieure à aujourd’hui de 30 jours ou plus.
Cas particuliers:
form_var_date_naissance|date:"Y" >= 2014 and form_var_date_naissance|date:"Y" <= 2016: Vérifie qu’une naissance est comprise entre 2014 et 2016.
2. Utiliser une liste à choix multiples
Dans le cas d’une liste à choix multiples (ex. : champ avec identifiant « foobar »), voici des exemples pratiques :
Élément coché :
"poire" in form_var_foobar: Vrai si « poire » est coché."poire" not in form_var_foobar: Vrai si « poire » n’est pas coché.
Combinaisons de choix :
"poire" in form_var_foobar and "pomme" in form_var_foobar: Vrai si les deux sont cochés."poire" in form_var_foobar or "pomme" in form_var_foobar: Vrai si au moins un des deux est coché.
Utilisation avancée :
Conversion en ensemble (type
set) pour des expressions complexes et plus lisibles.
3. Conditions conditionnelles (if...else)
Exemple :
Pour une demande pouvant concerner soi-même ou un tiers :
{% if form_var_nature_demande == "concerne quelqu'un d'autre" %}
{{ form_var_commune_personne_concernee }}
{% else %}
{{ form_var_commune_demandeur }}
{% endif %} Cette condition détermine la valeur d'une donnée de traitement en fonction de la réponse donnée.
4. Conditions de sortie de page
Les champs de type « Nouvelle page » permettent également d’empêcher la navigation si certaines conditions ne sont pas remplies.
Exemples :
Validation de champs identiques:
form_var_courriel1 == form_var_courriel2: Vrai si les deux champs courriels sont identiques.
Condition avec message d’erreur:
form_var_tel1 or form_var_tel2: Vérifie qu’au moins un champ téléphone est rempli. Message : « Veuillez saisir au moins un n° de téléphone. »
5. Pages conditionnelles
L’affichage conditionnel d’une page repose sur l’utilisation de variables associées à des champs.
Exemple :
Si l’identifiant du champ « Possédez-vous un véhicule ? » est « vehicule » :
form_var_vehicule == "Oui": Affiche la page si l’utilisateur répond « Oui ».
Cohérence des règles:
Respectez la casse et utilisez le préfixe « form_var_ ».
Assurez-vous que les valeurs sont exactes (guillemets, accents, etc.).
6. Utilisation d’opérateurs avancés
Les opérateurs permettent des conditions complexes :
and,or,not: Combinaisons logiques.!=: Différent de.<,>,<=,>=: Comparaisons numériques avec transformation préalable (ex. :|decimal).
Exemples :
form_var_vehicule == "Oui" or form_var_achat_vehicule == "Oui"form_var_jour != "jeudi"form_var_couleur in "Bleu Rose Vert"|split