Créer un formulaire avancé avec conditions et variables


Créer un formulaire complexe avec conditions et variables dans Cadulis

Avec Cadulis, vous pouvez aller bien plus loin que la simple saisie de données.
Les formulaires complexes permettent d’adapter les champs à chaque contexte d’intervention, de rappeler des informations automatiquement (via des variables dynamiques) et de conditionner l’affichage des champs selon les réponses précédentes.

Ce guide vous accompagne pas à pas pour créer un formulaire avancé :

  • Affichage conditionnel
  • Variables dynamiques
  • Champs invisibles

1. Accéder au formulaire d’un type d’activité

  • Rendez-vous dans le menu Catalogue
  • Cliquez sur un type d’activité existant (ou créez-en un nouveau)
  • Sur la page “Informations type d’activité”, cliquez sur le bouton :
    • Formulaire d’activité ou
    • Formulaire de clôture
  • Cliquez ensuite sur Ajouter un champ

2. Ajouter un champ avec affichage conditionnel

  1. Choisissez un type de champ (ex. : Zone de texte)
  2. Saisissez un code unique (ex. : satisfaction_client)
  3. Cliquez sur Ajouter un champ

Vous êtes redirigé vers la page “Modifier un champ” :

  • Dépliez le menu Affichage
  • Cliquez sur Conditions d’affichage

Dans la pop-up :

  • Cliquez sur +
  • Renseignez :
    • Champ à tester : liste des champs déjà créés
    • Type de condition : “Fait partie de” / “Ne fait pas partie de”
    • Valeur de comparaison : sélectionnez une valeur existante
  • Cliquez sur Valider

Vous pouvez ensuite définir un opérateur logique ET / OU si plusieurs conditions sont présentes.

Exemple

Si vous avez un champ client_satisfait avec les valeurs Oui / Non,
vous pouvez afficher un champ de commentaire seulement si le client répond “Non”.

3. Insérer des variables dans les champs

Les variables permettent d’afficher automatiquement des informations dans un formulaire :

  • Date de l’intervention
  • Nom du client
  • Adresse, intervenant, commentaire de clôture…

Où les insérer

  • Dans le champ Description (texte affiché au-dessus du champ)
  • Dans le champ Valeur par défaut
  • Ou dans un champ Texte affiché

💡 Cliquez sur l’icône “Remplacements” dans l’interface pour découvrir toutes les variables disponibles.


Liste des variables disponibles

Les variables sont encadrées par des accolades {...} et peuvent être insérées dans :

  • Description
  • Valeur par défaut
  • Texte affiché

Elles sont utilisables dans des champs visibles, conditionnels ou masqués.

🔧 Variables système

Code Affiche… Exemple
{system.dateTimeNow} Date et heure actuelles Signature horodatée
{system.isEnvironmentProduction} yes / rien Pour différencier test / prod

📆 Variables liées à l’intervention {intervention.*}

Exemples :

  • {intervention.reference} – Référence de l’intervention
  • {intervention.date.dayOfWeek} – Jour de la semaine
  • {intervention.title} – Titre de l’intervention
  • {intervention.durationSeconds} – Durée en secondes
  • {intervention.businessUnit.name} – BU associée

🧭 Adresse d’intervention

  • {intervention.address}
  • {intervention.address.zipCode} – Code postal
  • {intervention.address.latitude} / {longitude} – Coordonnées GPS

👥 Client {intervention.customer.*}

  • {intervention.customer.name} – Nom
  • {intervention.customer.email} – Email
  • {intervention.customer.custom.niveau_confiance} – Champs personnalisés client

🙋 Intervenant {intervention.assignedUsers.*}

  • {intervention.assignedUsers.name} – Nom complet
  • {intervention.assignedUsers.email} – Email

✅ Clôture {intervention.report.*}

  • {intervention.report.status} – OK / KO
  • {intervention.report.comment} – Commentaire de fin

🔄 Interventions liées

  • {intervention.parent.date} – Date de mission parente
  • {intervention.container.*} – Infos d’une mission “conteneur”

👤 Utilisateur connecté {user.*}

  • {user.firstName} / {user.lastName}
  • {user.email}

4. Créer un champ masqué (non visible pour l’intervenant)

Lors de l’ajout d’un champ, sélectionnez Champ masqué.

Ce champ sera :

  • Invisible pour l’intervenant
  • Exploitable dans les exports, rapports ou logique conditionnelle

💡 Idéal pour transférer des valeurs entre activité et clôture sans perturber l’interface utilisateur.


5. Astuces avancées et cas d’usage inspirants

  • Champ récapitulatif :
    Intervention du {intervention.date} pour {intervention.customer.name}

  • Nom de l’intervenant par défaut :
    Valeur par défaut = {intervention.assignedUsers.name}

  • Symbole selon réponse :
    {condition,champ_sécurité,OK,✓,✗}

  • Anonymiser une donnée :
    {ano,customer.email}


✅ Bonnes pratiques

✔️ Créez d’abord les champs de contrôle (ex. Oui / Non) avant les champs conditionnels
✔️ Donnez des codes lisibles à vos champs (controle_securite)
✔️ Testez votre formulaire avec le bouton Tester
✔️ Utilisez des séparateurs horizontaux pour organiser les blocs