formulaires
L’application de gestion de formulaires est constituée de deux modules:
-
Composition : à destination des gestionnaires, un outil pour composer des formulaires
-
Suivi : à destination des gestionnaires, pour monitorer et passer en revue les réponses
Ensuite, l’application Formulaires sert à répondre aux formulaires
- Formulaires : à destination des gestionnaires et du public, un outil pour répondre à des formulaires
Le gestionnaire de référentiels est un module spécifique pour ajouter ou supprimer des référentiels.
Composition de formulaires
Structure générale
Le module de composition de formulaires permet aux utilisateur·ices de créer des formulaires, en faisant appel à des données de référence si besoin. Concernant l’interface de composition, suivant le niveau de complexité du formulaire, l’utilisateur·ice pourra choisir entre un mode interactif ou déclaratif.
Information : titre, description, image et document
Cet onglet concerne les informations liées au formulaire dans son ensemble.
Une interface permet d’ajouter les contenus qui seront visibles sur la page d’information du formulaire.
Celle-ci est composée d’un champ éditorial, où l’utilisateur·ice peut ajouter du texte formaté (markdown), une image et un document.
Syntaxe markdown
# Un titre est précédé d'un dièze et d'un espace
Texte **en gras** -> Texte en gras
Texte *en italique* -> Texte en italique
Pour ajouter une url, avec un nom spécifique, mettre le nom souhaité entre crochets, directement suivi du nom du site entre parenthèses:
[Site de perspective](https://perspective.brussels) -> Site de perspective
Information : langues et gestionnaires
En outre, sont définis ici:
- la ou les langues du formulaire
- le, la ou les gestionnaires du formulaire
La colonne de gauche peut être repliée.
Référentiels
Une interface spécifique permet à l’utilisateur·ice de gérer les référentiels qui seront utilisés dans le formulaire.
Une barre de recherche permet de filtrer les référentiels.
Un pictogramme spécifique indique si un référentiel est de type liste, spatial ou les deux.
Exemple de référentiels:
- types d’enseignement
- bâtiments urbis
Composition : mode interactif
Structuration du formulaire en section, sous-sections et questions. La barre d’outil permet d’ajouter un des éléments. Ceux-ci peuvent ensuite être réordonnés, supprimés, ou édités.
La prévisualisation permet de voir une image du formulaire en construction. Pour le tester effectivement, changer son statut en test, et aller dans l’application Formulaires.
Types de questions
Les types suivants sont disponibles:
- texte court
- texte de plusieurs lignes
- date
- nombre
- sélection (choix unique ou multiple)
- radio button
- menu déroulant
- case à cocher
- sélection spatiale
- dessin d’une géométrie (point, ligne ou polygone)
- sélection d’une géométrie sur base d’un référentiel spatial
Composition : mode déclaratif
Le formulaire peut aussi se composer de manière textuelle, c’est le mode déclaratif.
Le mode déclaratif, en plus des fonctionnalités du mode interactif sert à paramétrer les questions en cascade, et l’élaboration de contraintes et conditions.
Ces commandes sont décrites, et agrémentées d’exemples dans un widget d’aide disponible dans l’application de composition elle-même.
Celui-ci reprend, d’une part, les identifiants des questions et des référentiels, nécessaires à l’écriture d’une condition, ainsi que des exemples pour écrire les questions et les conditions.
La représentation structurée sous forme textuelle permet:
- une facilité pour copier et coller des formulaires existants, ou des morceaux de formulaires
- la création de templates adéquats
L’utilisateur·ice peut passer du mode interactif au mode déclaratif et vice versa.
Mode déclaratif: balises fonctionnelles
Les sections et questions s’écrivent à l’aide de balises fonctionnelles. Celles-ci prennent en argument:
- un
id, c’est-à-dire un identifiant. Celui-ci peut être modifié par l’utilisateur·ice, mais doit être unique. Il est utilisé pour se référer à la question dans le cas de comportements conditionnels. - un
type - un
label, c’est-à-dire le titre de la section, ou de la question - une
description
Structure: section et sous-sections
section
Une section du formulaire s’écrit à l’aide de la balise section:
id: my-section
type: section
label:
fr: Ma section
description:
fr: Une description de la section
nl: Een descriptie van de sectie
subsection
Une sous-section du formulaire s’écrit à l’aide de la balise subsection:
id: my-subsection
type: subsection
label:
fr: Ma sous-section
description:
fr: "Exemple : une description de la sous-section"
nl: "Voorbeeld: een beschrijving van de subsectie"
Note: entourer le libellé de guillemets " " lorsqu’il contient la séquence :
Questions
short-text
À utiliser pour des questions où une réponse textuelle courte est attendue.
id: my-short-question-1
type: short-text
label:
fr: Ma question
nl: Mijn vraag
description:
fr: Une description en complément du titre
nl: Een descriptie
placeholder:
en: a placeholder
fr: Un texte de saisie indicatif
long-text
À utiliser pour des questions qui demandent un long texte.
id: my-long-question-1
type: long-text
label:
fr: Ma question
nl: Mijn vraag
description:
fr: Une description en complément du titre
nl: Een descriptie
placeholder:
en: a placeholder
fr: Un texte de saisie indicatif
number
À utiliser pour les champs numériques
id: my-number-question-1
type: number
label:
fr: Combien d'étages?
min: 1
max: 15
description:
fr: Le rez-de-chaussée est inclus.
placeholder: 3
selection
À utiliser pour les choix multiples, ou cases à cocher
id: my-selection-question-1
type: selection
label:
fr: Commune
nl: Gemeente
mode: unique
reference: geo-1
description:
fr: Sélectionne la commune dans laquelle tu habites
nl: Selecteer de gemeente waar je woont
id: my-selection-question-1
type: selection
label:
fr: Commune
nl: Gemeente
mode: unique
reference: geo-1
description:
fr: Aimez-vous les formulaires?
nl: Houden jullie van formulieren?
Compléter la balise reference avec l’identifiant du référentiel choisi.
date
Pour les champs date.
id: my-date-question-1
type: date
label:
fr: Quelle date?
min: 1920-01-01
max: 2025-12-31
placeholder: 2025-03-07
geometry
Pour les questions liées à des données spatiales.
Dessin
Pour le dessin d’un point, ligne ou polygone
id: my-geo-question-1
type: geometry
label:
fr: Où vous promenez-vous?
nl: Waar wandelt u graag?
draw: Point
Sélection d’une géométrie
Sélection sur base d’un référentiel spatial
id: my-geo-question-2
type: geometry
label:
fr: Ma geometrie
nl: Mijn geometrie
select: ref-id
Comportements
À ces éléments, s’ajoute la possibilité d’écrire des conditions.
Il est possible de conditionner la visibilité d’une question en fonction des réponses à d’autres questions. Ces conditions sont encodées sous le mot-clé when qui prend deux arguments:
question: id-de-la-questionpour référer à la question par son identifiant- un opérateur parmi :
has-answer: Présence d’une réponseequals: Égalitédifferent: Différencegreater-than: Supérieurelower-than: Inférieuregreater-than-or-equal: Supérieure ou égalelower-than-or-equal: Inférieure ou égalecontains: Contientdoes-not-contain: Ne contient pas
Avec les mots-clés when-all et when-some, il est possible d’encoder une liste de conditions. La validité du bloc sera alors décidée si respectivement, toutes ou au moins une condition sont remplies.
has-answer
Affiche une entrée en fonction de la présence d’une réponse.
when:
question: another-question-id
has-answer: true
equals
Affiche une entrée si la réponse à une question est égale à une valeur donnée.
when:
question: age
equals: 18
different
Affiche une entrée si la réponse à une question est différente d’une valeur donnée.
when:
question: selection-question-id
different: 5
greater-than
Affiche une entrée si la réponse à une question est supérieure à une valeur donnée.
when:
question: age
greater-than: 18
lower-than
Affiche une entrée si la réponse à une question est inférieure à une valeur donnée.
when:
question: age
lower-than: 65
greater-than-or-equal
Affiche une entrée si la réponse à une question est supérieure ou égale à une valeur donnée.
when:
question: age
greater-than-or-equal: 18
lower-than-or-equal
Affiche une entrée si la réponse à une question est inférieure ou égale à une valeur donnée.
when:
question: age
lower-than-or-equal: 65
contains
Affiche une entrée si la réponse à une question à choix multiple contient une valeur donnée.
when:
question: transport-modes
contains: 3
does-not-contain
Affiche une entrée si la réponse à une question à choix multiple ne contient pas une valeur donnée.
when:
question: transport-modes
does-not-contain: 3
when-all
Affiche une entrée si toutes les conditions listées sont remplies.
when-all:
- question: uses-public-transports
has-answer: true
- question: age
greater-than: 18
when-some
Affiche une entrée si au moins une des conditions listées est remplie.
when-some:
- question: uses-public-transports
has-answer: true
- question: closest-bus-stop
has-answer: true
Mode déclaratif : exemple de question conditionnelle
La prévisualisation indique aussi les relations conditionnelles entre les questions.
id: my-section
type: section
label:
fr: Ma section
description:
fr: Une description de la section
nl: Een descriptie van de sectie
Annexes
Cet onglet permet de décrire les annexes devant être jointes par la personne qui remplit un formulaire.
Le type de document attendu, ainsi que la quantité peuvent être spécifiés.
Finalisation
L’onglet Finalisation permet de définir le statut de publication du formulaire ainsi que son audience.
Si le formulaire est en test, ou publié, des liens de partage sont disponibles ici.
Suivi de formulaires
Statistiques
Le module de suivi de l’application formulaires permet de monitorer l’état d’avancement d’un formulaire.
La page de statistiques permet de suivre l’évolution du nombre de réponses et de leur contenu.
Une ligne du temps permet de voir le nombre de réponses au formulaire envoyées par jour.
Statistiques: détail des réponses
À la suite, une vue statistique du formulaire, réponse par réponse, permet d’avoir une vue plus précise. Dans le cas de questions spatiales, une carte synthétise les réponses fournies.
La structure du formulaire en section est répercutée. Les questions conditionnelles sont mises en évidence pour comprendre le lien entre les questions.
Questions de revue
Cette section revue permet au gestionnaire d’ajouter des champs au formulaire pour passer les réponses en revue.
Ces champs permettent :
- l’analyse qualitative via un champ texte
- la création d’indicateurs de suivi (exemple: case à cocher “demande analysée”).
L’ajout se fait comme pour la composition du formulaire, avec un mode interactif, et un mode déclaratif. Cela permet de la flexibilité aux utilisateur·ices, dont les besoins en termes d’analyse, de validation et de consolidation des données sont variés.
Réponses : configuration du tableau
Dans un premier temps l’utilisateur·ice choisit quels champs ajouter au tableau de synthèse de présentation des réponses, via des cases à cocher.
L’utilisateur·ice peut revenir à cette configuration plus tard. Cette configuration est utilisée lors de la projection des données.
Il est possible de tout sélectionner à la fois.
Réponses: vue tableau
Ensuite, le tableau présente l’ensemble des réponses soumises. Pour chaque réponse, on peut soit:
- télécharger la fiche de la réponse au format pdf
- visualiser en détail les réponses
L’ensemble des réponses peuvent être téléchargées au format .xls.
Enfin, les données peuvent être projetées dans une table, en gardant la configuration du tableau. La date de la dernière projection des données est également affichée.
Réponses: détail d’une réponse sélectionnée
La vue en détail permet de consulter une réponse du formulaire, et de compléter les questions de suivi.
Gestion des référentiels
Le gestionnaire de référentiels permet d’ajouter et de supprimer des référentiels.
Il y a deux types de référentiels pour les formulaires:
- Les référentiels de liste
Ils sont utilisés pour les questions de type sélection (case à cocher, liste déroulante, …) Leur import se fait sur base d’un fichier Excel.
- Les référentiels spatiaux
Ils sont utilisés pour les questions spatiales (choix d’une entité sur la carte). Ils peuvent aussi servir de référentiel de liste pour les questions de type sélection, pour autant qu’une colonne a été choisie comme label.
Leur import se fait en copiant les géométries et les identifiants, depuis une table de données spatiales pour laquelle une fiche de métadonnées a été créée sur geodata.