Sommaire
- Introduction
- Création de formulaire
- Les options de publication des formulaires
- Les types de champs utilisables
- Création d'un formulaire multipage
- Création d'un formulaire multipage avec conditions
- La chaîne de traitement d'un formulaire
- Les courriels de notification
- Les workflows
- L'import et l'export de formulaires
- Le site communautaire
- Licences
Introduction
w.c.s est un logiciel permettant de générer des formulaires et des consultations en ligne et de les intégrer dans un workflow. Configuré par défaut pour des besoins basique, il offre une personnalisation poussée permettant de l'adapter à de nombreux usages différents. Un ensemble de formulaires mettant en avant différentes fonctionnalités de w.c.s est disponible :
Pour importer ces formulaires lisez ce paragraphe.
Création de formulaire
Dans l'interface d'administration, cliquez sur « Formulaires » puis sur « Nouveau formulaire ».
Donnez un nom au formulaire.
Choisissez dans la liste déroulante appropriée, le type de "Destinataire", c'est à dire le type de personne qui sera habilité à recevoir et à traiter le formulaire une fois qu'il aura été rempli. La liste déroulante destinataire présente l'ensemble des "Rôles" existant dans le système. Pour en savoir plus sur la définition des rôles consultez le Guide de l'administrateur.
La liste déroulante "Catégorie" permet de sélectionner la catégorie sous laquelle sera affichée le formulaire, sur la page d'accueil de l'utilisateur. Pour en savoir plus sur la définition des catégories consultez le Guide de l'administrateur.
La liste déroulante workflow permet d'affecter un workflow particulier au formulaire. Si vous n'en sélectionnez aucun, le formulaire sera associé au workflow de base permettant des échanges entre administrés et agents administratifs mais avec un seul niveau de validation (si vous avez besoin de mettre en place un circuit complexe de validation, il faut construire votre propre workflow, lisez ce paragraphe).
La liste déroulante "Rôle de l'expéditeur" permet d'affecter un ou plusieurs rôles pour définir qui sera autorisé à remplir le formulaire. Par défaut un formulaire est accessible à tout le monde, on peut en restreindre l'accès aux utilisateurs identifiés, ou avoir une gestion fine de l'accès par le biais des rôles. Pour en savoir plus sur la définition des rôles consultez le Guide de l'administrateur.
Cliquez sur le bouton valider pour terminer la création du formulaire, vous accédez alors à l'interface de définition des champs de ce dernier.
Vous pouvez au choix définir les champs un à un ou importer en masse tous les champs d'un formulaire existant et voisin de celui que vous voulez mettre en place (en supprimant ensuite éventuellement les champs qui ne vous intéresse pas).
Pour pouvoir ajouter un champ au formulaire, il faut lui donner un libellé (une valeur qui sera affichée à l'utilisateur) et déterminer son type (sa nature). Il faut ensuite cliquer sur l'icône '+' pour ajouter le champ au formulaire.
On peut regrouper les différents types de champs en deux grandes catégories :
- Les champs d'information : titre, sous-titre, commentaire et nouvelle page, ne sont pas des champs de réponse, ils servent à apporter des compléments d'information sur les formulaires.
- Les autres champs sont là pour demander des informations à l'utilisateur et fixent la nature de la réponse souhaitée : date, adresse mail, bloc de texte, ligne de texte (qui sert également pour les chiffres), case à cocher, liste, liste à choix fermé, tableau, upload de fichier.
Une fois créés, les champs peuvent être déplacés à volonté par Drag'n'Drop pour déterminer leur ordre d'affichage.
Les options de publication des formulaires
En bas de l'écran de création des champs on peut voir le lien "modifier les options". Le suivre permet de configurer les options de publication des formulaires. Outre les éléments abordés au paragraphe précédent, on trouve :
- Inclure une page de confirmation : permet d'afficher au répondant une page récapitulative des informations saisies avant la validation définitive ;
- Permettre la discussion : permet la discussion (plusieurs aller retour avec des commentaires) entre le répondant et la personne chargée de traiter le formulaire ;
- Accès en lecture : définit qui sera autorisé à voir le formulaire complété par le répondant (en plus de la personne qui le reçoit et le traite)
- N'autoriser qu'un formulaire par utilisateur : utile pour faire des consultations puiqu'un utilisateur ne doit pouvoir compléter un formulaire qu'une fois dans cette cirsonstance
- Autoriser l'utilisateur à conserver ses brouillons : permet à un utilisateur identifié de sauvegarder des formulaires en cours de complétion et de les retrouver plus tard pour les terminer
- Désactiver l'accès au formulaire : permet de ne plus afficher un formulaire à quiconque. C'est utile pour les formulaires saisonniers type "Inscription à la fête de noël" : plutôt que de les supprimer et de les recréer chaque année, on va les désactiver 10 mois sur 12.
Les types de champs utilisables
w.c.s. fournit 13 types de champs différents. Après avoir été créés, tous les types de champs peuvent être paramétrés en cliquant sur l'icône adéquate :
On a alors accès à un ensemble d'options permettant de personnaliser le champ. Les options spécifiques à chaque champs sont détaillées dans le paragraphe qui leur est consacré, les options communes à tous les types de champs sont explicitées ici
Les champs qui demandent une information au répondant
Champ Texte (ligne)
C'est le champ de base, utilisé pour demander au répondant de fournir une information en texte libre. Le champ texte permet, dans sa configuration de base, une réponse comprenant des lettres et des chiffres et limitée à 20 caractères. Tout ceci, en particulier la taille, peut être modifié aisément dans les options.
Si, par exemple, la réponse ne doit comporter que des chiffres, il convient d'appliquer une règle dans le champ regex prévu à cet effet. Vous devez utiliser des expressions régulières en Python : Exemple de règles :
- Tél. 10 chiffres : \d{10}$
- Tél. 10 chiffres avec possibilité d'espace entre les groupes de 2 chiffres : \d{2}\D*\d{2}\D*\d{2}\D*\d{2}\D*\d{2}$
- Code postal : 5 chiffres \d{5}$
- Valeur numérique : \d+$
La liste déroulante "Préremplir", permet d'utiliser le cas échéant 3 types de pré-remplissage des champs :
- Texte, qui en cliquant sur le bouton "appliquer" vous permettra de saisir une valeur fixe qui sera affiché indifféremment à tous les répondants.
- Champ utilisateur, qui en cliquant sur le bouton "appliquer" vous permettra de sélectionner un élément d'information concernant le répondant connu du système, typiquement son nom ou son courriel (cela suppose que le répondant s'est identifié au préalable pour pouvoir bénéficier de ce pré-remplissage).
- Expression ID-WSF, qui concerne le partage d'attributs Liberty Alliance et nécessite la mise en place d'un fournisseur de service ID-WSF pour pouvoir fonctionner.
Champ bloc de texte
Le bloc de texte est identique au champs Texte (ligne) mais il s'étend sur plusieurs lignes. La taille du bloc de texte est modifiable. Par défaut le nombre de caractères par ligne est fixé à 20 et le nombre de lignes à 3. Pour un affichage optimal coté utilisateur, 70 caractères par ligne constitue un bon compromis. 10 lignes par bloc permet une réponse déjà longue, sachant que si l'utilisateur dépasse, il aura un ascenseur.
Champ adresse électronique
C'est un champ Texte (ligne) sur lequel un contrôle est opéré pour vérifier que c'est bien une adresse mail qui est saisie. Le répondant devra donc mentionner dans ce champ une adresse de courriel.
Champ liste
Ce champ permet l'affichage d'une liste déroulante au répondant. Comme le champ Texte (ligne), ce champ peut être pré-rempli.
Dans les options, grâce à « éléments », il est possible de déterminer les différentes possibilités de réponse. Ajoutez autant d'éléments que nécessaire à votre liste.
Vous pouvez choisir d'afficher les réponses sous forme de bouton radio à l'aide de la case à cocher prévue à cet effet.
Champ date
L'ajout d'un champ de ce type provoquera l'apparition pour le répondant d'une applet permettant de compléter la date choisie. Les dates admises actuellement vont du 01/01/1800 au 31/12/2099, un contrôle est opéré.
Champ case à cocher
Il s'agit d'une case à cocher permettant par exemple d'obtenir le consentement du demandeur.
Champ texte (choix fermé)
C'est une liste à choix multiple. Cela permet de répondre de manière multiple à des éléments de texte fixés, par exemple les jours de la semaine pour lesquels on souhaite manger au restaurant d'entreprise.
Champ Tableau
Ce champ permet de mettre en place un tableau dans le formulaire. Lorsqu'on le paramètre on choisit le nombre de colonnes et de lignes qu'il va compter et les libellés choisis apparaîtront au-dessus des colonnes (pour les éléments saisis sous "Colonne") et devant les lignes (pour les éléments saisis sous "Lignes").
Les champs qui fournissent une information au répondant
Champ Titre
Il permet d'insérer un titre dans le formulaire
Champ Sous-titre
Il permet d'insérer un sous-titre dans le formulaire
Champ Commentaire
Il permet d'insérer un commentaire dans le formulaire. Attention il n'est pas forcément judicieux de l'utiliser pour donner des informations concernant la façon de remplir tel ou tel champs : l'option Remarque sert à cela.
Champ Nouvelle page
Il permet de spécifier qu'une nouvelle page doit commencer à cet endroit. Le champ nouvelle page permet donc de créer des formulaires multi-pages. Le libellé des champs nouvelle page sera affiché à l'utilisateur dans un cadre à part, lui permettant d'avoir une vue d'ensemble du formulaire et de savoir sur quelle page il se trouve. Le champ nouvelle page permet également de gérer la notion d'affichage conditionnel : certaines pages ne seront affichées qu'en fonction d'une réponse à une question précédente (voir ce paragraphe. À noter qu'un formulaire multi-pages doit obligatoirement commencer par un champ de ce type.
les options communes aux différents types de champs
Tous les types de champs disposent d'une série d'options communes :
- Obligatoire : il s'agit d'une case à cocher qui fixe le caractère obligatoire d'une réponse pour le répondant, si la case n'est pas cochée, la réponse à la question est optionnelle.
Remarque : permet d'apporter une aide au répondant. Dans le cas d'un champ adresse électronique, on pourra faire figurer dans cette option : "par exemple : francis.kuntz@wanagro.com", et ce message sera affiché à l'utilisateur en-dessous du champ adresse électronique.
- Affichage dans les Listings : il n'est pas forcément pertinent que tous les champs figurent dans le listing de back-office d'autant que dans le cas de formulaires comprenant beaucoup de champs, le listing n'est pas très lisible si tous sont affichés. Cette option permet donc, par le biais d'une case à cocher de déterminer si le champ concerné doit figurer dans le listing back-office.
- Classe supplémentaire pour les styles CSS : permet (si le thème graphique utilisé le supporte) d'afficher l'étiquette du champ comme un titre ou à la suite d'un autre champ par le biais des mots clefs "title" et "inline".
Création d'un formulaire multipage
Pour créer un formulaire multi-page il suffit de faire figurer comme premier champ du formulaire, un champ de type "nouvelle page", de mettre à sa suite tous les champs appartenant à la première page. On met ensuite un autre champ nouvelle page et à sa suite tous les champs relatifs à cette nouvelle page et ainsi de suite.
Les différentes pages créées apparaissent dans un cadre spécifique sur l'interface publique :
Il faut noter, lors de la phase de conception d'un formulaire multipage, que les champs nouvelle page figurant sont les seuls à offrir une icône loupe : cette dernière permet de n'afficher que les champs relatifs à la page en question pour faciliter une édition page par page.
Création d'un formulaire multipage avec conditions
Lorsque l'on souhaite conditionner l'affichage d'une page à une réponse précédente dans le formulaire, il faut trouver l'identifiant du champ sur lequel on va faire porter la condition. Pour cela on regarde l'url spécifique de ce champ quand on l'édite (pour paramétrer ses options). On obtient une URL du type http://wcs.exemple.org/admin/forms/28/fields/15/, et le dernier chiffre désigne l'identifiant du champ en question, ici 15.
Imaginons que ce champ se rapporte à la question "Avez-vous des enfants?" qui est une liste de deux éléments "Oui" et "Non". Je souhaite n'afficher la page de mon formulaire qui concerne les enfants que pour les utilisateurs ayant répondu "oui" à cette question dont l'identifiant est 15. Je vais alors éditer le champ "nouvelle page" qui marque le début de ma page de formulaire consacrée aux enfants et je vais inscrire dans l'option "condition" :
f15 == "Oui"
Attention la casse des caractères est prise en compte, un "oui" à la place d'un "Oui" empêchera le fonctionnement de l'ensemble.
La chaîne de traitement d'un formulaire
Nous avons appris à créer un formulaire mais que se passe-t-il ensuite ? Où peut-on le remplir ? Qui peut le faire ? Qui va le recevoir ? Pour quel type de traitement ? Nous essayons de détailler ici le "workflow par défaut" que suit un formulaire lorsqu'un utilisateur le remplit. Il y a la possibilité de construire des circuits plus élaborés (détaillés dans ce paragraphe). w.c.s. a pour but d'accélérer et de simplifier les échanges entre ceux qui remplissent les formulaires et ceux qui les traitent. Il facilite en particulier le suivi des demandes pour les deux parties.
Remplissage
Le formulaire nouvellement créé est accessible sur l'interface publique (la racine du site w.c.s., par exemple wcs.exemple.org), rangé sous la catégorie qui lui a été attribué. Seuls les utilisateurs auquel il a été destiné (voir ici comment on détermine qui a le droit de voir un formulaire) pourront le voir, une identification préalable est donc nécessaire si le formulaire n'est pas ouvert à tous.
Un clic sur le formulaire permet de commencer sa complétion, de valider la ou les pages concernées, de voir un récapitulatif si cette option a été cochée au moment de la création, puis de modifier ou valider définitivement le formulaire qui est alors envoyé à son destinataire.
Le demandeur identifié peut à tout moment sauvegarder son formulaire, si l'option "Autoriser l'utilisateur à conserver ses brouillons" a été cochée au moment de la création du formulaire. Et il peut suivre l'évolution de sa (ses) demande(s) en cours sur la page d'accueil : il voit les formulaires qu'il a envoyé et s'ils ont été traités ou non.
Traitement en backoffice
Le destinataire est quelqu'un dont le compte utilisateur w.c.s. correspond au rôle que l'on a associé au formulaire (voir ici). Il a accès à l'interface de backoffice http://wcs.exemple.org/backoffice qui lui permet de superviser les formulaires qui le concerne et qui ont été remplis.
En cliquant sur un formulaire particulier puis sur listing, il voit la liste des formulaires complétés et leur statut. En choisissant un formulaire particulier, il peut lui appliquer trois types de traitement :
- Accepter : la demande est archivée et on peut déclencher un événement dans une application métier (inscription à la bibliothèque par exemple) en cas d'interfaçage spécifique ;
- Refuser : La demande est archivée et rejetée ;
Envoyer un commentaire à l'expéditeur (si l'option permettre la discussion a été cochée, voir ici).
Les courriels de notification
w.c.s. permet l'envoi de courriels variés aux utilisateurs, en particulier lorsqu'ils ont rempli un formulaire ou lorsqu'ils traitent un formulaire. Cela nécessite une configuration générale de l'envoi de mail (pour sélectionner en particulier un serveur responsable de l'envoi de courriel) qui est détaillée dans le Guide de l'administrateur.
Les courriels envoyés peuvent être personnalisés. En cliquant sur "Paramètres" dans le menu de gauche puis sur "Courriels" dans la liste des paramètres, on accède à la liste des courriels personnalisés. Cliquez sur l'un d'entre eux pour pouvoir le modifier. Notez qu'il existe des variables différentes utilisables pour chacun de ces messages, ces variables mises entre crochets [] seront remplacées par leurs valeurs (relative à l'utilisateur ou au site) dans le message envoyé à l'utilisateur. Ces variables sont listées sous le message. Il y a aussi dans ces modèles de message des commandes entre crochet auxquelles il est préférable de ne pas toucher sauf si on sait ce que l'on fait.
Les différents courriels et leurs variables entre parenthèses :
- Approbation de nouveau compte (username, password) : Envoyé à l'utilisateur lorsqu'un administrateur valide la création d'un nouveau compte demandé par l'utilisateur.
- Jeton d'identification (token, token_url, sitename) : Envoyé à l'utilisateur quand un jeton d'identification est généré.
- Nouveau mot de passe généré (password) : Mot de passe envoyé à l'utilisateur lorsqu'il confirme qu'il a demandé un nouveau mot de passe.
- Notification de changement au destinataire (name, url, before, after, evolution) : Envoyé à la personne qui traite le formulaire quand il y a un changement sur celui-ci.
- Notification de changement à l'utilisateur (user, name, url, before, after, evolution) : Envoyé à la personne qui remplit le formulaire quand il y a un changement sur celui-ci.
- Notification de commentaire au destinataire (name, url, evolution) : Envoyé à la personne qui traite le formulaire quand il y a un commentaire apporté sur celui-ci.
- Notification de commentaire à l'utilisateur (url, evolution) : Envoyé à la personne qui remplit le formulaire quand il y a un commentaire apporté sur celui-ci.
- Notification de création au destinataire (name, url, details) : Envoyé à la personne qui traite le formulaire quand un formulaire est créé.
- Notification de création à l'utilisateur (user, name, url, details) : Envoyé à la personne qui remplit le formulaire quand un formulaire est créé.
- Notification of new registration to administrators (hostname, email_as_username, username) : Envoyé aux administrateurs lorsqu'un compte utilisateur est créé.
- Notification of removal of unused account (username) : Envoyé aux utilisateurs pour les avertir de la suppression de leur compte quand leur compte est resté inactif trop longtemps.
- Demande de changement de mot de passe (change_url, cancel_url, time) : Demande de confirmation envoyée aux utilisateurs lorsque le système reçoit une demande pour un nouveau mot de passe.
- Notification d'inscription pour un compte à mot de passe (email, website, token_url, admin_email, username, password) : Envoyé à l'utilisateur lors de la création de son compte.
- Avertissement à propos d'un compte inutilisé (username) : Avertissement envoyé à l'utilisateur, avant suppression, lorsque son compte reste inactif trop longtemps.
Les workflows
Workflow de base
De base w.c.s. dispose d'un workflow qui permet d'envoyer une notification au destinataire, puis des notifications au demandeur à chaque étape d'avancement de sa demande. Le workflow de base supporte des paramétrages, au niveau des options du formulaire concerné (permettre la discussion avec le demandeur, envoi de courriels de notification détaillés) qu'au niveau des courriels.
Création de workflow
Depuis le menu, vous pouvez créer de nouveaux workflows en cliquant sur « nouveau workfow »
Donnez un nom au workflow, puis validez.
Création des statuts
À ce stade vous arrivez à l'étape de création des statuts possibles, créez les un par un, par exemple :
- Nouveau
- Approuvé par le chef de service
- Refusé
- Accepté par la direction
Définition des statuts
Vous disposez maintenant d'une page récapitulative des statuts de votre workflow. L'ordre des statuts peut être modifié par « drag & drop ».
En face de chacun des statuts, vous disposez d'une icône permettant de le modifier ou de le supprimer (il y a une demande de confirmation sur la suppression).
Pour le premier statut cliquez sur « modifier », vous disposez alors d'une liste d'action disponibles :
- Commentable
- Choix
- Sauter à la soumission
- Envoyer un mail
- Affichage d'un message
- Redirection vers la page de statut
- Éditable
Commentable
Cette fonction permet de commenter le formulaire, il vous suffit ensuite de définir qui aura les droits pour cela : expéditeur, destinataire, etc.
Choix
Vous pouvez par ce biais définir les actions possibles pour la personne en charge du traitement du formulaire : accepté, refusé, transmis, etc.
Il vous faut définir la valeur de l'étiquette qui s'affichera sous forme de bouton pour la personne en charge du traitement, puis le statut associé, enfin les rôles pouvant se prononcer.
Sauter à la soumission
Cette fonction permet de basculer automatiquement à un statut une fois une action réalisée.
Envoyer un mail
Vous pouvez créer des mails personnalisés sur le modèle de ceux détaillés ici en ayant à votre disposition des variables permettant de suivre l'évolution du formulaire :
- url
- before
- after
- evolution
- details
Dans le corps de votre message les variables doivent être mises entre crochets.
Affichage d'un message
Cette fonction permet d'afficher un message au demandeur lorsqu'il a validé sa demande. Dans le texte du message vous pouvez introduire du code html.
Redirection vers la page de statut
Permet à l'étape de récapitulatif du formulaire d'afficher directement la page de statut du formulaire. On peut également s'en servir pour afficher la page de statut du back-office, mais pour pouvoir la visualiser, il faut bien entendu que l'utilisateur en ait les droits.
Éditable
Cette fonction permet au demandeur d'éditer, donc de modifier un formulaire une fois validé. Elle peut servir par exemple en cas de consultation à pouvoir changer d'avis dans le temps.
Interface récapitulative des workflows disponibles
Depuis cette interface, vous pouvez créer de nouveaux workflows en cliquant sur le lien approprié. Vous disposez également d'un récapitulatif de tous les worflows créés avec des possibilités d'actions sur chacun par le biais des icônes en fin de ligne.
Modifier
Grâce à ce bouton, vous pourrez ensuite modifier les paramètres du workflow concerné.
Supprimer
Vous pourrez ici supprimer un workflow. Afin d'éviter les suppressions brutales ou les erreurs de manipulation, une confirmation de la suppression est demandée.
Dupliquer
Ce bouton permet la duplication d'un workflow, pour éviter d'avoir à faire une création ex-nihilo si vous souhaitez en créer un ayant une structuration proche d'un existant.
Logs
S'il est activé, le système de logs, permet d'analyser le comportement des répondants.
L'import et l'export de formulaires
w.c.s. permet un import et un export global du système (comprenant tous les formulaires, les rôles, les catégories...) qui est détaillé dans le Guide de l'administrateur. Mais il permet aussi un import et un export par formulaire.
Ces formulaires peuvent par exemple être importés ou exportés depuis le site communautaire, mais vous pouvez aussi tester l'import en téléchargeant ce Formulaire de démonstration.
Import
Une fois le formulaire à importer téléchargé, vous disposez d'un fichier .wcs, par exemple formulaire-de-demonstration.wcs.
Dans l'interface d'administration sélectionnez "Formulaires" puis "Import". Cliquez sur "Parcourir", sélectionnez le fichier formulaire-de-demonstration.wcs. Cliquez ensuite sur "Importer le formulaire".
Le formulaire est alors importé et édité. Notez que le formulaire n'est pas lié à des rôles (concernant l'expéditeur et/ou le destinataire) ou a des catégories et qu'il faut le renseigner à ce niveau là. Remarquez également que l'option "Désactiver l'accès au formulaire" est activée, ce qui empêche la publication du formulaire, afin de s'assurer que le formulaire a bien été édité et adapté au système avant de se retrouver en ligne.
Export
Lorsqu'on clique sur "Formulaires" dans le menu de gauche pour accéder à la liste des formulaires, on constate que la dernière icône (une disquette avec un engrenage) en face de chaque formulaire, permet de l'exporter. Un clic sur l'icône provoque l'apparition d'une boite de dialogue spécifique à votre navigateur et vous permettant de sauvegarder le fichier .wcs en question.
Le site communautaire
Les collectivités locales qui utilisent w.c.s. ont fréquemment des besoins voisins, il y a bon nombre de formulaires existant qui moyennant des ajustements mineurs sont utilisables d'une collectivité à l'autre. Afin de ne pas réinventer la roue et de créer une dynamique collaborative, nous avons mis en place une site communautaire sur lequel vous pouvez facilement rechercher et télécharger vos formulaires. Pour que ce site fonctionne bien, il est important que vous fassiez l'effort d'y déposer vos propres créations. À noter que le dépôt de formulaires nécessite une identification et donc la création préalable d'un compte (il suffit de saisir une adresse de courriel, rien d'autre, avec la garantie qu'il n'y aura pas le moindre spam) ici.
Licences
w.c.s. est publié sous la licence GNU GPL V2.