help: use proper apostrophes

This commit is contained in:
Frédéric Péters 2020-12-06 16:29:00 +01:00
parent 33166c8ddc
commit b1ffd25470
25 changed files with 341 additions and 341 deletions

View File

@ -9,7 +9,7 @@
<name>Frédéric Péters</name>
<email>fpeters@entrouvert.com</email>
</credit>
<desc>Clé d'utilisation, utilisateurs, sessions, signatures, etc.</desc>
<desc>Clé dutilisation, utilisateurs, sessions, signatures, etc.</desc>
</info>
@ -20,10 +20,10 @@
<p>
Pour les appels concernant un usager particulier (tel que la récupération de la
liste de ses formulaires en cours), l'usager est précisé en ajoutant une query
string avec un paramètre <code>email</code> (pour trouver l'usager selon son
liste de ses formulaires en cours), lusager est précisé en ajoutant une query
string avec un paramètre <code>email</code> (pour trouver lusager selon son
adresse électronique) ou un paramètre <code>NameID</code> (pour trouver
l'usager selon son NameID SAML).
lusager selon son NameID SAML).
</p>
</section>
@ -34,10 +34,10 @@ l'usager selon son NameID SAML).
<p>
Les appels aux API doivent être signés, cela passe par une clé partagée à
configurer des deux cotés de la liaison, la signature est du type HMAC;
l'algorithme de hash à employer est passé en paramètre.
lalgorithme de hash à employer est passé en paramètre.
</p>
<note><p>En ce qui concerne l'algorithme de hash, il est préconisé d'utiliser
<note><p>En ce qui concerne lalgorithme de hash, il est préconisé dutiliser
SHA-256 par respect du <link
href="http://references.modernisation.gouv.fr/securite">Référentiel Général
de Sécurité (RGS)</link>.</p></note>
@ -45,7 +45,7 @@ de Sécurité (RGS)</link>.</p></note>
<p>
La signature est à calculer sur la query string encodée complète, en
enlevant les paramètres terminaux <code>algo</code>, <code>timestamp</code>,
<code>nonce</code>, <code>orig</code> et <code>signature</code> s'ils sont
<code>nonce</code>, <code>orig</code> et <code>signature</code> sils sont
présents.</p>
<p>La formule de calcul de la signature est la suivante :</p>
@ -61,14 +61,14 @@ en se limitant à la précision des secondes (ex : 2012-04-04T12:34:00Z),
</p></item>
<item><p><code>nonce</code> est un aléa, typiquement la réprésentation hexa
d'un nombre pseudo-aléatoire de 128 bits,</p></item>
dun nombre pseudo-aléatoire de 128 bits,</p></item>
<item><p><code>orig</code> est une chaîne précisant l'émetteur de la
<item><p><code>orig</code> est une chaîne précisant lémetteur de la
requête,</p></item>
<item><p>algo est une chaîne représentant l'algorithme de hachage utilisé, sont
<item><p>algo est une chaîne représentant lalgorithme de hachage utilisé, sont
définis : sha1, sha256, sha512 pour les trois algorithmes correspondant.
L'utilisation d'une valeur différente n'est pas définie. L'algorithme sha256
Lutilisation dune valeur différente nest pas définie. Lalgorithme sha256
est préconisé.</p></item>
</list>
@ -103,7 +103,7 @@ intranet = 12345
<title>Exemples de code de signature</title>
<p>
Voici des exemples de code pour créer des URLs signées selon l'algorithme
Voici des exemples de code pour créer des URLs signées selon lalgorithme
expliqué ci-dessus.
</p>

View File

@ -20,10 +20,10 @@ obtenir la liste des modèles de fiche et les schémas de données associés.
</p>
<section id="card">
<title>Récupération des données d'une fiches</title>
<title>Récupération des données dune fiches</title>
<p>
L'exemple suivant récupère les données d'une fiche « Parking », dont le modèle
Lexemple suivant récupère les données dune fiche « Parking », dont le modèle
de fiche a comme identifiant « parkings ».
</p>
@ -45,7 +45,7 @@ Le contenu ainsi obtenu est le suivant :
"last_update_time" : "2020-11-24T14:18:16",
"receipt_time" : "2020-11-06T14:48:07",
"fields" : {
"adresse" : "rue de l'Opéra",
"adresse" : "rue de lOpéra",
"date_ouverture" : "2020-11-12",
"nom" : "Parking Opéra-Tolozan"
},
@ -64,8 +64,8 @@ Le contenu ainsi obtenu est le suivant :
</code>
<p>
La structure du contenu correspond à celle de l'API d
<link xref="api-get#pull">récupération des données d'un formulaire</link>.
La structure du contenu correspond à celle de lAPI d
<link xref="api-get#pull">récupération des données dun formulaire</link>.
</p>
</section>
@ -74,7 +74,7 @@ La structure du contenu correspond à celle de l'API d
<title>Liste de fiches</title>
<p>
La liste des fiches d'un modèle donné est destinée à être utilisée par
La liste des fiches dun modèle donné est destinée à être utilisée par
un système de synchronisation. Elle ne retourne donc pour chaque fiche que
son numéro (id), ses dates de création et de dernière mise à jour.
</p>
@ -109,8 +109,8 @@ effacées, puis effectuera pour chacune les actions nécessaires.
<p>
Des paramètres peuvent être envoyés dans la requête pour filtrer la liste des
fiches, ils sont similaires à ceux de l'API de <link
xref="api-get#listing">récupération d'une liste de formulaires</link>.
fiches, ils sont similaires à ceux de lAPI de <link
xref="api-get#listing">récupération dune liste de formulaires</link>.
</p>
</section>
@ -119,7 +119,7 @@ xref="api-get#listing">récupération d'une liste de formulaires</link>.
<title>Schéma de données</title>
<p>
Une API existe pour récupérer le schéma de données d'un modèle de fiches.
Une API existe pour récupérer le schéma de données dun modèle de fiches.
</p>
<screen>

View File

@ -18,7 +18,7 @@
w.c.s. peut utiliser des référentiels externes pour par exemple alimenter la
liste des choix possibles dans un champ; pour ce faire w.c.s. utilise le
format JSON.
L'adresse appelée doit répondre aux exigences suivantes :
Ladresse appelée doit répondre aux exigences suivantes :
</p>
<list>
@ -49,7 +49,7 @@ L'adresse appelée doit répondre aux exigences suivantes :
<p>
Quand il y a besoin de filtrer dynamiquement les données
(autocomplétion, recherche dans un champ liste), l'adresse appellée
(autocomplétion, recherche dans un champ liste), ladresse appellée
doit respecter les exigences supplémentaires suivantes :
</p>
@ -61,7 +61,7 @@ doit respecter les exigences supplémentaires suivantes :
</list>
<example>
<title>Exemple JSON d'un élément unique désigné par son identifiant</title>
<title>Exemple JSON dun élément unique désigné par son identifiant</title>
<screen>
<output style="prompt">$ </output><input>curl https://www.example.net/data/fruits?id=1</input>
<output>{

View File

@ -12,27 +12,27 @@
</info>
<title>Complétion et modification d'un formulaire</title>
<title>Complétion et modification dun formulaire</title>
<p>
w.c.s expose une API autorisant les logiciels tiers à transmettre des données
structurées permettant la complétion d'un formulaire ou la modification d'un
structurées permettant la complétion dun formulaire ou la modification dun
formulaire existant.
</p>
<section id="create">
<title>Complétion d'un formulaire</title>
<title>Complétion dun formulaire</title>
<p>
La complétion d'un formulaire se fait par une requête <code>POST</code> à
l'adresse <code>/api/formdefs/<var>slug</var>/submit</code>, le contenu de
La complétion dun formulaire se fait par une requête <code>POST</code> à
ladresse <code>/api/formdefs/<var>slug</var>/submit</code>, le contenu de
la requête doit être un dictionnaire contenant obligatoirement un attribut
<code>data</code> et optionnellement un attribut <code>meta</code> et un
attribut <code>context</code>.
</p>
<p>
L'attribut <code>data</code> est obligatoire et contient un dictionnaire
Lattribut <code>data</code> est obligatoire et contient un dictionnaire
dont les clés sont les noms de variable (remplacé ici par
<var>varname</var>) des champs du formulaire et les valeurs le contenu de
ces champs.
@ -79,7 +79,7 @@ formulaire existant.
</list>
<p>
L'attribut <code>meta</code> est optionnel et contient une série de
Lattribut <code>meta</code> est optionnel et contient une série de
paramètres supplémentaires concernant le formulaire.
</p>
@ -98,14 +98,14 @@ formulaire existant.
</table>
<p>
L'attribut <code>context</code> est également optionnel et contient une
série de renseignements supplémentaires sur le contexte de l'envoi du
Lattribut <code>context</code> est également optionnel et contient une
série de renseignements supplémentaires sur le contexte de lenvoi du
formulaire. Les attributs reconnus sont <code>channel</code>,
<code>thumbnail_url</code>, <code>user_id</code> et <code>comments</code>.
</p>
<p>
L'exemple suivant complète un formulaire d'inscription à une newsletter, qui
Lexemple suivant complète un formulaire dinscription à une newsletter, qui
demanderait trois champs : prénom (nom de variable <code>prenom</code>), nom
(nom de variable <code>nom</code>) et adresse électronique (nom de variable
<code>email</code>).
@ -137,16 +137,16 @@ formulaire existant.
</section>
<section id="edit">
<title>Modification d'un formulaire</title>
<title>Modification dun formulaire</title>
<p>
Un formulaire qui peut être modifié (par la présence d'une action de workflow
de type « Permettre l'édition ») peut également être modifié via un appel à
l'API, en faisant un <code>POST</code> sur l'adresse du formulaire.
Un formulaire qui peut être modifié (par la présence dune action de workflow
de type « Permettre lédition ») peut également être modifié via un appel à
lAPI, en faisant un <code>POST</code> sur ladresse du formulaire.
</p>
<p>
Les données attendues sont similaires à la création d'un nouveau formulaire,
Les données attendues sont similaires à la création dun nouveau formulaire,
seuls les champs présents seront pris en compte.
</p>
@ -182,7 +182,7 @@ formulaire existant.
<p>
Pour les champs de type « Liste », si le champ est configuré avec une simple
liste d'options, la valeur doit être une chaîne tirée de la liste.
liste doptions, la valeur doit être une chaîne tirée de la liste.
</p>
<listing>
@ -195,15 +195,15 @@ formulaire existant.
<p>
Si le champ est configuré pour tirer ses options depuis une source de
données, la valeur peut être l'identifiant d'une donnée structurée ou si la
donnée structurée complète est transmise, l'identifiant de la donnée dans
données, la valeur peut être lidentifiant dune donnée structurée ou si la
donnée structurée complète est transmise, lidentifiant de la donnée dans
une clé suffixée de <code>_raw</code>, le libellé de la donnée dans la clé
normale et éventuellement la donnée structurée complète dans une clé
suffixée de <code>_structured</code>.
</p>
<listing>
<title>Identifiant d'une option</title>
<title>Identifiant dune option</title>
<code>
"data": {
"<var>varname</var>": "1"
@ -229,7 +229,7 @@ formulaire existant.
<p>
Pour les champs de type « Liste à choix multiple », si le champ est
configuré avec une simple liste d'options, la valeur doit être une
configuré avec une simple liste doptions, la valeur doit être une
liste de chaînes tirées de la liste.
</p>
@ -243,7 +243,7 @@ formulaire existant.
<p>
Si le champ est configuré pour tirer ses options depuis une source de
données, la valeur peut être une liste d'identifiants ou,
données, la valeur peut être une liste didentifiants ou,
si la donnée structurée complète est transmise, la liste des identifiants
de la donnée dans une clé suffixée de <code>_raw</code>, la liste des
libellés de la donnée dans la clé normale et éventuellement la liste des
@ -252,7 +252,7 @@ formulaire existant.
</p>
<listing>
<title>Liste d'identifiants d'options</title>
<title>Liste didentifiants doptions</title>
<code>
"data": {
"<var>varname</var>": ["1", "2"]

View File

@ -12,20 +12,20 @@
</info>
<title>Récupération des données d'un formulaire</title>
<title>Récupération des données dun formulaire</title>
<p>
Il s'agit ici d'une API permettant à un logiciel tiers de récupérer les données
Il sagit ici dune API permettant à un logiciel tiers de récupérer les données
associées à un formulaire complété; cet accès peut aussi bien être initié par
l'application tierce (mode pull) ou par w.c.s., à différents moments du
traitement d'un formulaire (mode push).
lapplication tierce (mode pull) ou par w.c.s., à différents moments du
traitement dun formulaire (mode push).
</p>
<section id="pull">
<title>Mode « Pull »</title>
<p>
L'exemple suivant récupère les données d'un formulaire d'inscription à une
Lexemple suivant récupère les données dun formulaire dinscription à une
newsletter.
</p>
@ -130,9 +130,9 @@ Le contenu ainsi obtenu est le suivant :
"parts": [
{
"type": "wscall-error",
"summary": "description de l'erreur",
"summary": "description de lerreur",
"label": "appel du web-service XYZ",
"data": "données reçues jusqu'à 10000 octets..."
"data": "données reçues jusquà 10000 octets..."
},
{
"type": "workflow-comment",
@ -149,39 +149,39 @@ Seuls les champs ayant un <em>nom de variable</em> sont exportés dans <code>fie
</p>
<p>
Les différentes géolocalisation associées au formulaire sont listées dans l'attribut
<code>geolocations</code>. Pour l'instant il n'en existe qu'une toujours nommée <code>base</code>.
Les différentes géolocalisation associées au formulaire sont listées dans lattribut
<code>geolocations</code>. Pour linstant il nen existe quune toujours nommée <code>base</code>.
</p>
<p>
Concernant les rôles et fonctions de workflow, les différents intervenants sont
listés dans l'attribut <code>roles</code>, en différentes séries qui vont
listés dans lattribut <code>roles</code>, en différentes séries qui vont
dépendre de fonctions attachées au workflow. Deux séries sont particulières,
la série <code>concerned</code> reprend les rôles concernés par la demande et
la série <code>actions</code> reprend les rôles disposant d'une capacité
d'action sur la demande.
la série <code>actions</code> reprend les rôles disposant dune capacité
daction sur la demande.
</p>
<p>
L'information sur l'origine de la demande, si la saisie a eu lieu depuis le
backoffice et quel était le canal d'origine de la demande, est disponible
dans l'attribut <code>submission</code>.
Linformation sur lorigine de la demande, si la saisie a eu lieu depuis le
backoffice et quel était le canal dorigine de la demande, est disponible
dans lattribut <code>submission</code>.
</p>
<p>
L'historique du formulaire, ses transitions dans différents statuts, est disponible dans l'attribut
<code>evolution</code>. Cette liste de dictionnaires contient l'instant de la transition
dans l'attribut <code>time</code>, le code du statut concerné dans <code>status</code> et
une description de l'utilisateur responsable de la transition dans <code>user</code>. L'attribut
Lhistorique du formulaire, ses transitions dans différents statuts, est disponible dans lattribut
<code>evolution</code>. Cette liste de dictionnaires contient linstant de la transition
dans lattribut <code>time</code>, le code du statut concerné dans <code>status</code> et
une description de lutilisateur responsable de la transition dans <code>user</code>. Lattribut
optionnel <code>parts</code> peut contenir une liste de dictionnaires liés aux actions de workflow,
comme un commentaire ou une erreur lors de l'appel d'un <em>web service</em>.
comme un commentaire ou une erreur lors de lappel dun <em>web service</em>.
</p>
<note>
<p>
Il est bien sûr nécessaire de disposer des autorisations nécessaires pour
accéder ainsi aux données d'un formulaire. (cf <link
accéder ainsi aux données dun formulaire. (cf <link
xref="api-auth"/> pour les explications sur le sujet)
</p>
</note>
@ -192,15 +192,15 @@ comme un commentaire ou une erreur lors de l'appel d'un <em>web service</em>.
<title>Mode « push »</title>
<p>
Il est également possible pour un workflow d'être configuré pour transmettre
Il est également possible pour un workflow dêtre configuré pour transmettre
les données à une URL fournie par une application tierce. Un document JSON
(tel celui donné plus haut) est alors transmis en utilisant la méthode POST.
</p>
<p>
En retour, l'application tierce peut fournir un objet JSON qui sera enregistré
En retour, lapplication tierce peut fournir un objet JSON qui sera enregistré
dans les données du workflow du formulaire (voir le dictionnaire "data" dans
l'exemple ci-dessus).
lexemple ci-dessus).
</p>
</section>
@ -210,7 +210,7 @@ l'exemple ci-dessus).
<title>Types de données</title>
<p>
Les données d'un formulaire sont placées dans le champs <code>fields</code> de
Les données dun formulaire sont placées dans le champs <code>fields</code> de
la réponse. Les champs de type simple tels que « Texte », « Texte long » ou
« Courriel » sont vus en tant que chaîne de caractères :
</p>
@ -226,7 +226,7 @@ la réponse. Les champs de type simple tels que « Texte », « Texte long 
</code>
<section>
<title>Représentation d'un champ « Fichier »</title>
<title>Représentation dun champ « Fichier »</title>
<p>
Les champs de type « Fichier » sont exportés selon le schéma suivant :
@ -257,7 +257,7 @@ La valeur de <code>content</code> est le contenu du fichier, encodé en base64.
<title>Liste de formulaires</title>
<note style="important"><p>
Ce webservice n'est pas encore stabilisé, son URL peut encore changer dans les
Ce webservice nest pas encore stabilisé, son URL peut encore changer dans les
futures versions de w.c.s.
</p></note>
@ -298,7 +298,7 @@ etc.).
<p>
Des paramètres peuvent être envoyés dans la requête pour filtrer le listing
voulu. Il s'agit des mêmes paramètres que pour l'export ou le listing en backoffice, sauf
voulu. Il sagit des mêmes paramètres que pour lexport ou le listing en backoffice, sauf
pour filter qui est fixé à all par défaut. Pour avoir une liste limitée aux
demandes non terminées (pending) :
</p>
@ -322,10 +322,10 @@ possibles est « gratuit » :
<p>
Afin de faciliter certains traitements <em>batch</em>, il est possible de
demander que l'ensemble des données associées aux formulaires soient
retourné, plutôt qu'un jeu réduit adapté aux systèmes de synchronisation.
demander que lensemble des données associées aux formulaires soient
retourné, plutôt quun jeu réduit adapté aux systèmes de synchronisation.
Pour ce faire, il suffit de passer un paramètre <code>full=on</code> dans
l'adresse.
ladresse.
</p>
<screen>
@ -334,8 +334,8 @@ l'adresse.
</screen>
<p>
À noter que pour ne pas alourdir l'export en mode <code>full=on</code>, le
contenu des champs de type « Fichier » n'est pas exporté.
À noter que pour ne pas alourdir lexport en mode <code>full=on</code>, le
contenu des champs de type « Fichier » nest pas exporté.
</p>
</section>
@ -344,10 +344,10 @@ contenu des champs de type « Fichier » n'est pas exporté.
<title>Données anonymisées</title>
<p>
Les API « Liste de formulaires » et le mode Pull de récupération d'un formulaire acceptent un
Les API « Liste de formulaires » et le mode Pull de récupération dun formulaire acceptent un
paramètre supplémentaire <code>anonymise</code>. Quand celui-ci est présent des données anonymisées
des formulaires sont renvoyées et les contrôles d'accès sont simplifiés à une signature simple, il
n'est pas nécessaire de préciser l'identifiant d'un utilisateur.
des formulaires sont renvoyées et les contrôles daccès sont simplifiés à une signature simple, il
nest pas nécessaire de préciser lidentifiant dun utilisateur.
</p>
<screen>
@ -360,11 +360,11 @@ n'est pas nécessaire de préciser l'identifiant d'un utilisateur.
</section>
<section id="global-data">
<title>Données de l'ensemble des formulaires</title>
<title>Données de lensemble des formulaires</title>
<p>
De manière similaire à l'API de récupération de la liste des demandes d'un
formulaire, il est possible de récupérer l'ensemble des demandes de la
De manière similaire à lAPI de récupération de la liste des demandes dun
formulaire, il est possible de récupérer lensemble des demandes de la
plateforme, peu importe leurs types.
</p>
@ -398,7 +398,7 @@ n'est pas nécessaire de préciser l'identifiant d'un utilisateur.
<p>
Des paramètres peuvent être envoyés dans la requête pour filtrer les résultats.
Il s'agit des mêmes paramètres que ceux du tableau global en backoffice.
Il sagit des mêmes paramètres que ceux du tableau global en backoffice.
Par exemple, pour avoir une liste limitée aux demandes terminées :
</p>
@ -408,8 +408,8 @@ Par exemple, pour avoir une liste limitée aux demandes terminées :
</screen>
<note><p>
Le paramètre <code>full</code> n'est pas pris en charge dans cette API; le
paramètre <code>anonymise</code> non plus, les données l'étant déjà.
Le paramètre <code>full</code> nest pas pris en charge dans cette API; le
paramètre <code>anonymise</code> non plus, les données létant déjà.
</p></note>
</section>
@ -448,16 +448,16 @@ webservice <code>/geojson</code>.
</screen>
<p>
De manière identique aux appels précédents, des filtres peuvent être passés dans l'URL.
De manière identique aux appels précédents, des filtres peuvent être passés dans lURL.
</p>
<note><p>
Les URL retournées pour les demandes pointent vers l'interface de gestion de celles-ci.
Les URL retournées pour les demandes pointent vers linterface de gestion de celles-ci.
</p></note>
<p>
Il est également possible d'obtenir les informations géographiques de
l'ensemble des demandes :
Il est également possible dobtenir les informations géographiques de
lensemble des demandes :
</p>
<screen>
@ -471,7 +471,7 @@ l'ensemble des demandes :
<title>Code de suivi</title>
<p>
Une API existe pour déterminer l'existence d'un code de suivi et, le cas
Une API existe pour déterminer lexistence dun code de suivi et, le cas
échéant, découvrir la demande associée.
</p>
@ -484,7 +484,7 @@ Une API existe pour déterminer l'existence d'un code de suivi et, le cas
</screen>
<p>
En cas d'inexistence du code de suivi donné, une réponse avec un code de retour
En cas dinexistence du code de suivi donné, une réponse avec un code de retour
404 est retourné.
</p>

View File

@ -15,31 +15,31 @@
<title>Introduction aux API</title>
<p>
Cette section de la documentation s'adresse aux développeurs
d'applications tierces désirant interfacer celles-ci avec w.c.s.
Cette section de la documentation sadresse aux développeurs
dapplications tierces désirant interfacer celles-ci avec w.c.s.
</p>
<section id="tech">
<title>Aspects techniques</title>
<p>
L'API Web Services est constituée d'appels REST, qui sont idéalement effectués
LAPI Web Services est constituée dappels REST, qui sont idéalement effectués
en HTTPS, pour assurer la sécurité et la confidentialité des échanges. Le
format d'échange des données est JSON. Ces deux propriétés la rendent
format déchange des données est JSON. Ces deux propriétés la rendent
accessible facilement à tous les langages et environnements de programmation
modernes.
</p>
<p>
Cette documentation se veut facile à lire, avec beaucoup de notes et
d'exemples. Les différentes pages détaillent les points d'accès à
dexemples. Les différentes pages détaillent les points daccès à
utiliser pour réaliser les différentes opérations.
</p>
<note>
<p>
Les exemples donnés dans ce document utilisent pour la plupart l'outil en
ligne de commande <app>curl</app> qui permet de manière simple l'envoi de
Les exemples donnés dans ce document utilisent pour la plupart loutil en
ligne de commande <app>curl</app> qui permet de manière simple lenvoi de
requêtes HTTP à un serveur.
</p>
</note>

View File

@ -19,7 +19,7 @@ w.c.s expose une API permettant aux logiciels tiers de connaître les différent
formulaires et leurs schémas de données.
</p>
<note><p>Toutes ces URL sont conformes à la spécification de remontée d'information du
<note><p>Toutes ces URL sont conformes à la spécification de remontée dinformation du
<em>Portail citoyen</em>, acceptent ainsi un paramètre <code>email</code> ou
<code>NameID</code>, et nécessitent alors un paramètre <code>orig</code>.
</p></note>
@ -30,7 +30,7 @@ formulaires et leurs schémas de données.
<p>
La liste des formulaires accessibles à un utilisateur est disponible à
l'URL <code>/api/formdefs/</code>.
lURL <code>/api/formdefs/</code>.
</p>
<screen>
@ -71,14 +71,14 @@ URL <code>/json</code> autrement.
<p>
La liste des formulaires accessibles à un utilisateur dans le but de faire une
saisie backoffice est disponible, sous le même format, via l'URL
saisie backoffice est disponible, sous le même format, via lURL
<code>/api/formdefs/?backoffice-submission=on</code>.
</p>
<p>
Il est également possible d'obtenir un nombre permettant de trier les résultats
Il est également possible dobtenir un nombre permettant de trier les résultats
par « popularité » en ajoutant un paramètre <code>include-count=on</code>. Les
différentes entrées disposeront alors d'une clé <code>count</code>.
différentes entrées disposeront alors dune clé <code>count</code>.
</p>
<p>
@ -93,7 +93,7 @@ La liste retournée inclura les formulaires désactivés en ajoutant le paramèt
<title>Catégories</title>
<p>
La liste des catégories est disponible à l'URL <code>/api/categories/</code>.
La liste des catégories est disponible à lURL <code>/api/categories/</code>.
</p>
<screen>
@ -115,13 +115,13 @@ La liste des catégories est disponible à l'URL <code>/api/categories/</code>.
</screen>
<p>
Il est possible de passer un paramètre <code>full=on</code> dans l'adresse pour
obtenir pour chacune des catégories la liste des formulaires qu'elle contient,
Il est possible de passer un paramètre <code>full=on</code> dans ladresse pour
obtenir pour chacune des catégories la liste des formulaires quelle contient,
dans une clé supplémentaire, <code>forms</code>.
</p>
<p>
Les formulaires d'une catégorie précise sont disponibles à l'URL
Les formulaires dune catégorie précise sont disponibles à lURL
<code>/api/categories/<var>slug</var>/formdefs/</code>.
</p>
@ -131,8 +131,8 @@ Les formulaires d'une catégorie précise sont disponibles à l'URL
</screen>
<p>
Comme pour la liste des formulaires en général, on peut ajouter l'argument
<code>?backoffice-submission=on</code> à cette URL, pour n'obtenir que les
Comme pour la liste des formulaires en général, on peut ajouter largument
<code>?backoffice-submission=on</code> à cette URL, pour nobtenir que les
formulaires de la catégorie accessibles en saisie backoffice.
</p>
@ -144,7 +144,7 @@ formulaires de la catégorie accessibles en saisie backoffice.
<title>Rôles</title>
<p>
La liste des rôles est disponible à l'URL <code>/api/roles</code>.
La liste des rôles est disponible à lURL <code>/api/roles</code>.
</p>
<screen>
@ -168,10 +168,10 @@ La liste des rôles est disponible à l'URL <code>/api/roles</code>.
<section id="data-schema">
<title>Schéma de données d'un formulaire</title>
<title>Schéma de données dun formulaire</title>
<p>
Le schéma de données d'un formulaire est accessible à l'adresse
Le schéma de données dun formulaire est accessible à ladresse
<code>/api/formdefs/<em>slug</em>/schema</code>.
</p>
@ -232,7 +232,7 @@ Le schéma de données d'un formulaire est accessible à l'adresse
<note>
<p>
Note de compatibilité : la même information est disponible en ajoutant
<code>/schema</code> à l'adresse publique du formulaire, par exemple
<code>/schema</code> à ladresse publique du formulaire, par exemple
<code>http://www.example.net/inscriptions/newsletter<em>/schema</em></code>.
</p>
</note>

View File

@ -12,10 +12,10 @@
</info>
<title>Récupération des données d'un utilisateur</title>
<title>Récupération des données dun utilisateur</title>
<p>
Il s'agit ici d'API permettant à un logiciel tiers de récupérer les données
Il sagit ici dAPI permettant à un logiciel tiers de récupérer les données
associées aux utilisateurs enregistrés.
</p>
@ -23,16 +23,16 @@ associées aux utilisateurs enregistrés.
<title>Profil</title>
<p>
Ces accès doivent se faire en passant les informations d'identification
Ces accès doivent se faire en passant les informations didentification
appropriées dans la <em>query string</em>.
</p>
<p>
Les informations associées à un utilisateur sont accessibles à l'URL
Les informations associées à un utilisateur sont accessibles à lURL
<code>/api/user/</code>, elles reprennent son nom (<code>user_display_name</code>),
son adresse électronique (<code>user_email</code>) ainsi que ses éventuelles
autorisations d'accès au backoffice (<code>user_backoffice_access</code>) ou
à l'interface d'administration (<code>user_admin_access</code>).
autorisations daccès au backoffice (<code>user_backoffice_access</code>) ou
à linterface dadministration (<code>user_admin_access</code>).
</p>
<screen>
@ -47,7 +47,7 @@ autorisations d'accès au backoffice (<code>user_backoffice_access</code>) ou
<note>
<p>Note de compatibilité : cette information est également disponible à
l'adresse <code>/user</code>.
ladresse <code>/user</code>.
</p>
</note>
@ -57,9 +57,9 @@ l'adresse <code>/user</code>.
<title>Formulaires</title>
<p>
La liste des formulaires transmis par un utilisateur est accessible à l'URL
La liste des formulaires transmis par un utilisateur est accessible à lURL
<code>/api/user/forms</code>, elle reprend un ensemble minimal
d'informations concernant chacun de ceux-ci.
dinformations concernant chacun de ceux-ci.
</p>
<screen>
<output style="prompt">$ </output><input>curl https://www.example.net/api/user/forms<var>?signature…</var></input>
@ -70,7 +70,7 @@ l'adresse <code>/user</code>.
"category_id": "1",
"category_name": "Divers",
"datetime": "2014-03-28 15:36:52",
"form_name": "Demande d'inscription",
"form_name": "Demande dinscription",
"form_slug": "demande-d-inscription",
"form_number": "123",
"form_number_raw": "123",
@ -81,9 +81,9 @@ l'adresse <code>/user</code>.
"form_uri": "demande-d-inscription/123/",
"form_url": "http://www.example.net/demande-d-inscription/123/",
"form_url_backoffice": "http://www.example.net/backoffice/demande-d-inscription/123/",
"name": "Demande d'inscription",
"name": "Demande dinscription",
"status": "Nouveau",
"title": "Demande d'inscription #123 (Nouveau)",
"title": "Demande dinscription #123 (Nouveau)",
"url": "http://www.example.net/demande-d-inscription/123/",
},
{
@ -110,7 +110,7 @@ l'adresse <code>/user</code>.
"category_id": "3",
"category_name": "Modification de vos coordonn\u00e9es",
"datetime": "2014-03-17 10:42:17",
"form_name": "Changement d'adresse",
"form_name": "Changement dadresse",
"form_slug": "changement-d-adresse",
"form_number": "424",
"form_number_raw": "424",
@ -121,9 +121,9 @@ l'adresse <code>/user</code>.
"form_uri": "changement-d-adresse/424/",
"form_url": "http://www.example.net/changement-d-adresse/424/",
"form_url_backoffice": "http://www.example.net/backoffice/changement-d-adresse/424/",
"name": "Changement d'adresse",
"name": "Changement dadresse",
"status": "Traitement de la demande termin\u00e9",
"title": "Changement d'adresse #424 (Traitement de la demande termin\u00e9)",
"title": "Changement dadresse #424 (Traitement de la demande termin\u00e9)",
"url": "http://www.example.net/changement-d-adresse/424/",
}
]
@ -131,7 +131,7 @@ l'adresse <code>/user</code>.
<p>
Il est possible de recevoir un ensemble plus complet de données en passant un
paramètre <code>full=on</code> à l'adresse. Pour inclure également les
paramètre <code>full=on</code> à ladresse. Pour inclure également les
brouillons, un paramètre <code>include-drafts=true</code> peut être passé.
</p>
@ -140,7 +140,7 @@ brouillons, un paramètre <code>include-drafts=true</code> peut être passé.
<title>Brouillons</title>
<p>
La liste des brouillons de l'utilisateur est accessible à l'adresse
La liste des brouillons de lutilisateur est accessible à ladresse
<code>/api/user/drafts</code>.
</p>
@ -160,7 +160,7 @@ brouillons, un paramètre <code>include-drafts=true</code> peut être passé.
<note>
<p>Note de compatibilité : cette information est également disponible à
l'adresse <code>/myspace/drafts</code>.
ladresse <code>/myspace/drafts</code>.
</p>
</note>
@ -171,8 +171,8 @@ l'adresse <code>/myspace/drafts</code>.
<title>Liste des utilisateurs</title>
<p>
La liste des utilisateurs est disponible à l'URL <code>/api/users/</code>,
il est possible de la filtrer, sur le nom ou l'adresse électronique, en
La liste des utilisateurs est disponible à lURL <code>/api/users/</code>,
il est possible de la filtrer, sur le nom ou ladresse électronique, en
spécifiant un paramètre <code>q</code> et de limiter le nombre de
résultats obtenus avec le paramètre <code>limit</code>.
</p>

View File

@ -12,16 +12,16 @@
</info>
<title>Traitement d'un formulaire</title>
<title>Traitement dun formulaire</title>
<section>
<title>Synchrone</title>
<p>
Pour faire évoluer un formulaire en fonction de données extérieures, le
workflow peut contenir une action d'<link xref="wf-wscall">appel à un
workflow peut contenir une action d<link xref="wf-wscall">appel à un
webservice</link> et enchaîner sur une série de sauts automatiques,
conditionnés par le résultat de l'appel.
conditionnés par le résultat de lappel.
</p>
</section>
@ -33,16 +33,16 @@ conditionnés par le résultat de l'appel.
<p>
Pour des traitements asynchrones, w.c.s expose également une API autorisant
les logiciels tiers à faire progresser le
traitement d'un formulaire; cela passe par la définition dans le statut du
workflow d'un élément de type « Changement de statut automatique », dans
traitement dun formulaire; cela passe par la définition dans le statut du
workflow dun élément de type « Changement de statut automatique », dans
lequel un identifiant de déclencheur est défini.
</p>
<p>
La demande d'un changement d'état se fait par une requête <code>POST</code> à
l'adresse du formulaire en question, suivi de <code>jump/trigger/</code> et de
la référence à l'identifiant de déclencheur (<code>validate</code> dans
l'exemple qui suit).
La demande dun changement détat se fait par une requête <code>POST</code> à
ladresse du formulaire en question, suivi de <code>jump/trigger/</code> et de
la référence à lidentifiant de déclencheur (<code>validate</code> dans
lexemple qui suit).
</p>
<screen>
@ -52,8 +52,8 @@ l'exemple qui suit).
</screen>
<p>
Il est également possible d'accompagner le déclenchement d'un changement
de statut d'une série de données, qui seront enregistrées dans les données de
Il est également possible daccompagner le déclenchement dun changement
de statut dune série de données, qui seront enregistrées dans les données de
workflow du formulaire.
</p>

View File

@ -15,7 +15,7 @@
<title>Scripts externes</title>
<p>
Il est possible d'étendre les capacités des champs calculés et des expressions
Il est possible détendre les capacités des champs calculés et des expressions
utilisées dans les gabarits au moyen de scripts externes. Pour cela il suffit
de déposer dans le répertoire système du site, dans un sous-répertoire
<code>scripts</code>, un fichier Python, dont le résultat doit être posé dans
@ -29,7 +29,7 @@ Par exemple <file>/var/lib/wcs/www.example.net/scripts/hello.py</file> pourrait
<code mime="text/python">
"""
Salue l'usager (quand un nom est passé en argument), ou le monde.
Salue lusager (quand un nom est passé en argument), ou le monde.
"""
if args:
result = "Hello %s" % args[0]
@ -39,7 +39,7 @@ else:
<p>
Dans un champ calculé, cela serait appelé comme <code>script.hello()</code> ou
<code>script.hello('earth')</code>; dans un gabarit, il n'y a pas de prise en
<code>script.hello('earth')</code>; dans un gabarit, il ny a pas de prise en
charge des arguments, la seule utilisation possible est
<code>{{script.hello}}</code>.
</p>
@ -48,7 +48,7 @@ charge des arguments, la seule utilisation possible est
<p>
Il est également possible de placer ces scripts dans un sous-répertoire
<code>scripts</code> du répertoire général des instances, pour rendre ceux-ci
disponibles depuis l'ensemble des instances.
disponibles depuis lensemble des instances.
</p>
</note>

View File

@ -17,7 +17,7 @@
<p>
Configuré en mode PostgreSQL, <app>w.c.s.</app> crée une série de <em>vues</em>
permettant un accès aux données des différents formulaires.
L'utilisation de ces vues est recommandée, l'accès direct aux tables étant
Lutilisation de ces vues est recommandée, laccès direct aux tables étant
réservé aux usages internes.
</p>
@ -26,8 +26,8 @@ réservé aux usages internes.
<p>
Une vue nommée <code>wcs_view_<var>xx</var>_<var>libellé</var></code> (avec
<var>xx</var> étant l'identifiant du formulaire et <var>libellé</var>
étant son nom tel qu'il appararait dans les URL) est créée par type de
<var>xx</var> étant lidentifiant du formulaire et <var>libellé</var>
étant son nom tel quil appararait dans les URL) est créée par type de
formulaire pour donner accès aux données de ceux-ci.
</p>
@ -38,7 +38,7 @@ réservé aux usages internes.
<list>
<item><p><var>id</var> : identifiant interne</p></item>
<item><p><var>id_display</var> : identifiant externe, le cas échéant</p></item>
<item><p><var>user_id</var> : identifiant de l'utilisateur</p></item>
<item><p><var>user_id</var> : identifiant de lutilisateur</p></item>
<item><p><var>receipt_time</var> : date et heure de réception</p></item>
<item><p><var>status</var> : statut courant</p></item>
<item><p><var>is_at_endpoint</var> : indicateur de fin de traitement</p></item>
@ -46,14 +46,14 @@ réservé aux usages internes.
<item><p><var>formdef_id</var> : identifiant du type de formulaire</p></item>
<item><p><var>fts</var> : indexation texte intégral</p></item>
<item><p><var>backoffice_submission</var> : indicateur de saisie backoffice</p></item>
<item><p><var>submission_channel</var> : canal d'entrée</p></item>
<item><p><var>submission_channel</var> : canal dentrée</p></item>
</list>
<p>
Les différents champs du formulaire sont ensuite présents en autant de
colonnes, elles sont nommées selon le format
<code>f_<var>identifiant</var></code> où identifiant est le nom de variable
utilisé dans la définition du champ. Quand celui-ci n'est pas défini, la
utilisé dans la définition du champ. Quand celui-ci nest pas défini, la
colonne est nommée
<code>f_<var>identifiant-numérique-interne</var>_<var>libellé</var></code>.
Pour un certain nombre de champs, différenciant la valeur présentée de la
@ -63,7 +63,7 @@ réservé aux usages internes.
<p>
Un dernier champ, <var>status_history</var> reprend un tableau avec
l'historique des statuts par lesquels le formulaire est passé.
lhistorique des statuts par lesquels le formulaire est passé.
</p>
</section>
@ -71,21 +71,21 @@ réservé aux usages internes.
<title>Agrégation de formulaires</title>
<p>
Les champs communs à l'ensemble des formulaires, c'est-à-dire ceux repris
Les champs communs à lensemble des formulaires, cest-à-dire ceux repris
dans la première liste donnée ci-dessus (<em>id</em>,
<em>id_display</em>…), sont également agrégés dans une vue unique,
<code>wcs_all_forms</code>.
</p>
<p>
De la même manière, les formulaires tirés d'une même catégorie sont agrégés
De la même manière, les formulaires tirés dune même catégorie sont agrégés
dans une vue nommée <code>wcs_category_<var>libellé</var></code> (ou
<var>libellé</var> correspond au titre de la catégorie).
</p>
<p>
Ces agrégations sont utiles pour permettre la réalisation d'opérations sur
l'ensemble des formulaires.
Ces agrégations sont utiles pour permettre la réalisation dopérations sur
lensemble des formulaires.
</p>
<screen>

View File

@ -14,25 +14,25 @@
<title>Géolocalisation</title>
<p>
Un champ de type « Carte » permet d'afficher à l'usager une carte dans
Un champ de type « Carte » permet dafficher à lusager une carte dans
laquelle il pourra pointer une adresse.
</p>
<p>
Le paramétrage du champ permet de préciser la zone sur laquelle la carte sera
centrée à l'ouverture du formulaire, ainsi que le niveau de zoom initial,
parce qu'il est inutile de présenter tout un pays dans un formulaire permettant
centrée à louverture du formulaire, ainsi que le niveau de zoom initial,
parce quil est inutile de présenter tout un pays dans un formulaire permettant
de signaler un trou dans une route de la ville, et des limites aux zooms,
parce qu'à nouveau, inutile de perdre l'usager dans un zoom affichant la terre
entière, ou le moindre brin d'herbe.
parce qu’à nouveau, inutile de perdre lusager dans un zoom affichant la terre
entière, ou le moindre brin dherbe.
</p>
<p>
En alternative à une zone initiale fixe, il est également possible de demander
à l'appareil mobile de l'usager sa position (qui sera alors déterminée par
à lappareil mobile de lusager sa position (qui sera alors déterminée par
GPS, Wifi ou autre), et de centrer la carte sur celle-ci. Via les options de
préremplissage, il peut aussi être demandé d'automatiquement sélectionner
comme point la position courante de l'usager.
préremplissage, il peut aussi être demandé dautomatiquement sélectionner
comme point la position courante de lusager.
</p>
<section>
@ -40,9 +40,9 @@
<p>
Les autres champs du formulaire peuvent être remplis selon le point qui sera
sélectionné par l'usager sur la carte; pour ce faire dans leurs options de
sélectionné par lusager sur la carte; pour ce faire dans leurs options de
préremplissage il suffit de sélectionner « Géolocalisation » et de choisir
l'élément d'adresse souhaité comme contenu : la rue ou le numéro, ou les
lélément dadresse souhaité comme contenu : la rue ou le numéro, ou les
deux, le code postal, la ville, la région.
</p>

View File

@ -16,9 +16,9 @@
<p>
Dans bien des situations il est nécessaire de structurer un formulaire en
plusieurs pages, pour ce faire un type de champ spécial existe, il s'agit de
plusieurs pages, pour ce faire un type de champ spécial existe, il sagit de
« Page ». Il permet de définir un titre aux pages, qui sera affiché à
l'usager dans l'indicateur de progression.
lusager dans lindicateur de progression.
</p>
<p>
@ -30,9 +30,9 @@ trouvent pas à <em>flotter</em> en-dehors de la structure de pages.
<note>
<p>
Afin de rappeler l'importance de la définition d'une page comme premier
élément de formulaire, un message d'information est affiché en haut de la
définition des champs quand ce n'est pas le cas.
Afin de rappeler limportance de la définition dune page comme premier
élément de formulaire, un message dinformation est affiché en haut de la
définition des champs quand ce nest pas le cas.
</p>
</note>
@ -40,37 +40,37 @@ trouvent pas à <em>flotter</em> en-dehors de la structure de pages.
<title>Pages conditionnelles</title>
<p>
Dans certaines situations toutes les pages d'un formulaire n'ont pas à être
Dans certaines situations toutes les pages dun formulaire nont pas à être
présentées dans toutes les situations, inutile par exemple de présenter une
page précisant les modalités d'accès à un parking si l'usager a noté dans
une page précédente qu'il viendrait en tant que piéton.
page précisant les modalités daccès à un parking si lusager a noté dans
une page précédente quil viendrait en tant que piéton.
</p>
<p>
Pour répondre à ce besoin, en plus du libellé de la page, les champs de type
« Page » disposent d'une option permettant d'en conditionner
l'affichage.
« Page » disposent dune option permettant den conditionner
laffichage.
</p>
<p>
Une condition s'exprime sous forme d'une <em>expression Python</em>, qui peut
Une condition sexprime sous forme dune <em>expression Python</em>, qui peut
faire référence à des informations concernant le formulaire en cours de
remplissage mais aussi à l'usager occupé à le remplir.
remplissage mais aussi à lusager occupé à le remplir.
</p>
<p>
Pour partir sur la situation du premier paragraphe, le champ « mode de
transport » pourrait avoir comme nom de variable associé
<code>mode_de_transport</code>, la page sur l'accès au parking ne devrait
pas être affichée pour les personnes ayant précisés qu'elles venaient à
pieds, le champ serait complété avec l'expression suivante :
<code>mode_de_transport</code>, la page sur laccès au parking ne devrait
pas être affichée pour les personnes ayant précisés quelles venaient à
pieds, le champ serait complété avec lexpression suivante :
<code>form_var_mode_de_transport != "Piéton"</code> (où le <code>!=</code>
correspond à la syntaxe Python signifiant « différent de »).
</p>
<note>
<p>
D'autres exemples de condition sont présentés dans la page <link
Dautres exemples de condition sont présentés dans la page <link
xref="misc-conditions"/>.
</p>
</note>

View File

@ -4,7 +4,7 @@
<info>
<revision docversion="0.1" date="2013-01-04" status="draft"/>
<license>
<p>Ce travail est publié à la fois sous <link href="http://creativecommons.org/licenses/by-sa/3.0/fr/">licence Creatice Commons Paternité - Partage à l'Identique 3.0</link> et sous <link href="http://www.gnu.org/licenses/gpl.html">licence GPL v3.</link></p>
<p>Ce travail est publié à la fois sous <link href="http://creativecommons.org/licenses/by-sa/3.0/fr/">licence Creatice Commons Paternité - Partage à lIdentique 3.0</link> et sous <link href="http://www.gnu.org/licenses/gpl.html">licence GPL v3.</link></p>
</license>
<credit type="author">
@ -19,7 +19,7 @@
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.
permettant de ladapter à de nombreux usages différents.
</p>
<section id="form" style="2column">
@ -29,7 +29,7 @@ permettant de l'adapter à de nombreux usages différents.
<title>Atelier de formulaires</title>
<p>
Le cœur de métier de <app>w.c.s.</app> est la définition de formulaires, des
plus simples aux plus complexes; une variété de possibilités et d'options
plus simples aux plus complexes; une variété de possibilités et doptions
existent.
</p>
</section>
@ -41,7 +41,7 @@ permettant de l'adapter à de nombreux usages différents.
<title>Atelier de workflows</title>
<p>
Pour définir des logiques de traitement complexe, w.c.s. intègre un
mécanisme de workflow, permettant de définir une série d'états et d'actions
mécanisme de workflow, permettant de définir une série détats et dactions
associées.
</p>
</section>
@ -52,9 +52,9 @@ permettant de l'adapter à de nombreux usages différents.
</info>
<title>Paramétrage système</title>
<p>
Pour l'administration système, <app>w.c.s.</app> dispose d'une série de
Pour ladministration système, <app>w.c.s.</app> dispose dune série de
paramètres concernant son fonctionnement et son intégration dans le système
d'information.
dinformation.
</p>
</section>

View File

@ -15,10 +15,10 @@
<p>
Dans la définition de pages conditionnelles et dans le paramétrage de sauts
dans le workflow, il y a besoin d'exprimer une condition sous forme d'une
dans le workflow, il y a besoin dexprimer une condition sous forme dune
expression Python. Cette page ne se veut évidemment pas un guide complet,
toutes les possibilités offertes par le langage Python étant possibles, mais
une série d'exemples concrets, rencontrés dans le paramétrage.
une série dexemples concrets, rencontrés dans le paramétrage.
</p>
<note><p>Une explication sur les variables accessibles se trouve dans la page
@ -29,15 +29,15 @@ une série d'exemples concrets, rencontrés dans le paramétrage.
<title>Expressions simples</title>
<p>
Pour tester le code postal associé à l'utilisateur courant, par exemple
pour proposer une page différente aux habitants d'une commune particulière,
l'expression suivante pourrait être utilisée :
Pour tester le code postal associé à lutilisateur courant, par exemple
pour proposer une page différente aux habitants dune commune particulière,
lexpression suivante pourrait être utilisée :
</p>
<example><code>session_user_var_codepostal == '07530'</code></example>
<p>
Dans le même ordre d'idée, pour les utilisateurs qui ne seraient <em>pas</em>
Dans le même ordre didée, pour les utilisateurs qui ne seraient <em>pas</em>
de cette commune :
</p>
@ -45,7 +45,7 @@ une série d'exemples concrets, rencontrés dans le paramétrage.
<p>
De manière générale, la négative peut également être obtenue en entourant
l'expression d'un <code>not()</code> :
lexpression dun <code>not()</code> :
</p>
<example><code>not(session_user_var_codepostal == '07530')</code></example>
@ -74,8 +74,8 @@ une série d'exemples concrets, rencontrés dans le paramétrage.
<p>
Tout autre chose, pour une réservation, on pourrait vouloir afficher une
page supplémentaire demandant les noms des inscrits, quand l'inscription
est faite pour plusieurs personnes. L'utilisation de <code>int()</code>
page supplémentaire demandant les noms des inscrits, quand linscription
est faite pour plusieurs personnes. Lutilisation de <code>int()</code>
permet les comparaisons numériques :
</p>
@ -103,7 +103,7 @@ une série d'exemples concrets, rencontrés dans le paramétrage.
<example><code>session_user_var_codepostal in ('07510', '07520', '07530')</code></example>
<p>
Sur ces exemples de codes postaux, si l'application visait plusieurs pays, on
Sur ces exemples de codes postaux, si lapplication visait plusieurs pays, on
devrait combiner le test, pour par exemple avoir « 07530 » comme code postal
<em>et</em> « France » comme pays. Cela se fait avec le mot-clé
<code>and</code> :
@ -117,7 +117,7 @@ une série d'exemples concrets, rencontrés dans le paramétrage.
<title>Condition sur un âge ou un délai</title>
<p>
Pour limiter une condition aux enfants dont l'âge est inférieur à 6 ans vous
Pour limiter une condition aux enfants dont lâge est inférieur à 6 ans vous
pouvez utiliser la fonction <code>utils.age_in_years</code> sur une variable de
type date.
</p>
@ -126,7 +126,7 @@ une série d'exemples concrets, rencontrés dans le paramétrage.
<p>
Pour prendre en compte le nombre de mois vous disposez aussi de
<code>utils.age_in_years_and_months</code>. Ici l'âge à ne pas dépasser sera 6 ans
<code>utils.age_in_years_and_months</code>. Ici lâge à ne pas dépasser sera 6 ans
et 3 mois.
</p>
@ -134,7 +134,7 @@ une série d'exemples concrets, rencontrés dans le paramétrage.
<p>
Les délais en terme de jour se calculeront avec <code>utils.age_in_days</code>. Ici
le délai est de 31 jours à dater de la soumission d'un formulaire.
le délai est de 31 jours à dater de la soumission dun formulaire.
</p>
<example><code>utils.age_in_days(form_receipt_datetime) &gt;= 31</code></example>

View File

@ -14,14 +14,14 @@
<title>Variables de substitution</title>
<p>
<app>w.c.s.</app> dispose d'un système générique appelé « variables de
<app>w.c.s.</app> dispose dun système générique appelé « variables de
substitutions » qui permet de faire référence à des données internes,
provenant du système, d'un formulaire, d'un champ, etc.
provenant du système, dun formulaire, dun champ, etc.
</p>
<p>
Ce système est particulièrement utile dans le paramétrage du contenu d'un
courriel ou dans la définition d'une logique de traitement d'un formulaire,
Ce système est particulièrement utile dans le paramétrage du contenu dun
courriel ou dans la définition dune logique de traitement dun formulaire,
mais est également accessible depuis le thème, pour le préremplissage de
champs, etc.
</p>
@ -40,15 +40,15 @@ champs, etc.
</tr>
<tr>
<td><p><code>site_theme</code></p></td>
<td><p>L'identifiant du thème en cours</p></td>
<td><p>Lidentifiant du thème en cours</p></td>
</tr>
<tr>
<td><p><code>site_url</code></p></td>
<td><p>L'adresse du site</p></td>
<td><p>Ladresse du site</p></td>
</tr>
<tr>
<td><p><code>site_url_backoffice</code></p></td>
<td><p>L'adresse vers le backoffice du site</p></td>
<td><p>Ladresse vers le backoffice du site</p></td>
</tr>
<tr>
<td><p><code>site_lang</code></p></td>
@ -60,15 +60,15 @@ champs, etc.
</tr>
<tr>
<td><p><code>now</code></p></td>
<td><p>La date et l'heure du jour</p></td>
<td><p>La date et lheure du jour</p></td>
</tr>
<tr>
<td><p><code>session_user_display_name</code></p></td>
<td><p>Le nom de l'utilisateur connecté</p></td>
<td><p>Le nom de lutilisateur connecté</p></td>
</tr>
<tr>
<td><p><code>session_user_email</code></p></td>
<td><p>L'adresse électronique de l'utilisateur connecté</p></td>
<td><p>Ladresse électronique de lutilisateur connecté</p></td>
</tr>
<tr>
<td><p><code>is_in_backoffice</code></p></td>
@ -77,14 +77,14 @@ champs, etc.
</table>
<p>
À l'intérieur d'une catégorie, les variables suivantes sont également
À lintérieur dune catégorie, les variables suivantes sont également
définies :
</p>
<table shade="rows">
<tr>
<td><p><code>category_name</code></p></td>
<td><p>L'intitulé de la catégorie</p></td>
<td><p>Lintitulé de la catégorie</p></td>
</tr>
<tr>
<td><p><code>category_description</code></p></td>
@ -92,14 +92,14 @@ champs, etc.
</tr>
<tr>
<td><p><code>category_id</code></p></td>
<td><p>L'identifiant de la catégorie</p></td>
<td><p>Lidentifiant de la catégorie</p></td>
</tr>
</table>
<note><p>
Des variables supplémentaires peuvent également être définies par
l'administrateur système, via des variables d'environnement ou la
configuration de l'instance de w.c.s.
ladministrateur système, via des variables denvironnement ou la
configuration de linstance de w.c.s.
</p></note>
</section>
@ -117,7 +117,7 @@ champs, etc.
</tr>
<tr>
<td><p><code>form_receipt_time</code></p></td>
<td><p>La date et l'heure de réception du formulaire</p></td>
<td><p>La date et lheure de réception du formulaire</p></td>
</tr>
<tr>
<td><p><code>form_name</code></p></td>
@ -129,19 +129,19 @@ champs, etc.
</tr>
<tr>
<td><p><code>form_slug</code></p></td>
<td><p>Le « slug » (partie d'adresse) du formulaire</p></td>
<td><p>Le « slug » (partie dadresse) du formulaire</p></td>
</tr>
<tr>
<td><p><code>form_url</code></p></td>
<td><p>L'adresse vers la vue du formulaire</p></td>
<td><p>Ladresse vers la vue du formulaire</p></td>
</tr>
<tr>
<td><p><code>form_url_backoffice</code></p></td>
<td><p>L'adresse vers le formulaire dans le backoffice</p></td>
<td><p>Ladresse vers le formulaire dans le backoffice</p></td>
</tr>
<tr>
<td><p><code>form_tracking_code</code></p></td>
<td><p>Le code de suivi du formulaire, s'il existe</p></td>
<td><p>Le code de suivi du formulaire, sil existe</p></td>
</tr>
<tr>
<td><p><code>form_criticality_level</code></p></td>
@ -151,30 +151,30 @@ champs, etc.
</section>
<section id="user-info">
<title>Informations sur l'utilisateur (demandeur)</title>
<title>Informations sur lutilisateur (demandeur)</title>
<p>
Les données contiennent aussi des informations sur l'utilisateur ayant
Les données contiennent aussi des informations sur lutilisateur ayant
complété le formulaire.
</p>
<table shade="rows">
<tr>
<td><p><code>form_user_display_name</code></p></td>
<td><p>Le nom de l'utilisateur</p></td>
<td><p>Le nom de lutilisateur</p></td>
</tr>
<tr>
<td><p><code>form_user_email</code></p></td>
<td><p>L'adresse électronique de l'utilisateur</p></td>
<td><p>Ladresse électronique de lutilisateur</p></td>
</tr>
<tr>
<td><p><code>form_user_name_identifier_<var>n</var></code></p></td>
<td><p>Identifiant SAML de l'utilisateur (NameID), pour le fournisseur
d'identités numéro n (n commençant à 0)</p></td> </tr>
<td><p>Identifiant SAML de lutilisateur (NameID), pour le fournisseur
didentités numéro n (n commençant à 0)</p></td> </tr>
</table>
<p>
Si un champ utilisateur personnalisé dispose d'un nom de variable, alors
Si un champ utilisateur personnalisé dispose dun nom de variable, alors
il est accessible sous la forme <code>form_user_var_<var>variable du
champ</var></code>, par exemple <code>form_user_var_prenom</code>.
</p>
@ -187,12 +187,12 @@ champs, etc.
<table shade="rows">
<tr>
<td><p><code>form_details</code></p></td>
<td><p>L'ensemble des champs et de leur valeurs</p></td>
<td><p>Lensemble des champs et de leur valeurs</p></td>
</tr>
</table>
<p>
Il est également possible au moment de la définition d'un champ, de lui
Il est également possible au moment de la définition dun champ, de lui
affecter un nom de variable, cela rendra la valeur associée à ce champ
accessible via une variable de la forme <code>form_var_<var>variable du
champ</var></code> (par exemple : <code>form_var_courriel</code>).
@ -202,7 +202,7 @@ champs, etc.
Pour les champs de type « Liste » dont les éléments contiendraient à la
fois un libellé et un identifiant (ce qui arrive pour les champs alimentés
depuis une source de données), le libellé se trouvera dans <code>form_var_<var>variable
du champ</var></code> et l'identifiant dans <code>form_var_<var>variable du
du champ</var></code> et lidentifiant dans <code>form_var_<var>variable du
champ</var>_raw</code>.
</p>
@ -274,7 +274,7 @@ champs, etc.
</table>
<p>
Si d'autres informations ont été fournies sur le contexte de la saisie
Si dautres informations ont été fournies sur le contexte de la saisie
elles sont disponibles dans des variables de la forme
<code>form_submission_context_<var>foobar</var></code>.
</p>
@ -287,11 +287,11 @@ champs, etc.
<title>Variables de session</title>
<p>
La session de l'usager contient une série d'informations fixes (par exemple
La session de lusager contient une série dinformations fixes (par exemple
le <code>session_user_display_name</code> décrit en haut de page), il est
aussi possible d'y ajouter de nouvelles données par l'intermédiaire de
liens contenant des paramètres. Cela permet par exemple d'inclure une URL
personnalisée dans un courriel vers l'usager qui assurera le
aussi possible dy ajouter de nouvelles données par lintermédiaire de
liens contenant des paramètres. Cela permet par exemple dinclure une URL
personnalisée dans un courriel vers lusager qui assurera le
préremplissage automatique de champs.
</p>
@ -320,7 +320,7 @@ champs, etc.
<note style="important">
<p>
Ce fonctionnement doit explicitement être autorisé par
l'administrateur système, la liste des variables permises doit être ajoutée
ladministrateur système, la liste des variables permises doit être ajoutée
au fichier <code>site_options.cfg</code>, dans la section
<code>[options]</code>, par exemple :
</p>

View File

@ -13,9 +13,9 @@
<title>Mécanique de gabarits</title>
<p>
De nombreux éléments permettent l'utilisation d'un système simple permettant
de générer du contenu variant suivant certaines données. L'exemple le plus
simple peut être le contenu d'un courriel, dans lequel l'utilisateur se voit
De nombreux éléments permettent lutilisation dun système simple permettant
de générer du contenu variant suivant certaines données. Lexemple le plus
simple peut être le contenu dun courriel, dans lequel lutilisateur se voit
souhaiter la bienvenue.
</p>
@ -23,13 +23,13 @@ souhaiter la bienvenue.
<code>
Bienvenue {{session_user_display_name}},
Toute l'équipe de {{site_name}} vous remercie de votre inscription
Toute léquipe de {{site_name}} vous remercie de votre inscription
et vous souhaite une agréable visite.
</code>
</example>
<p>
À l'usage, les contenus proposés entre crochets seront substitués, pour donner
À lusage, les contenus proposés entre crochets seront substitués, pour donner
le résultat suivant :
</p>
@ -37,16 +37,16 @@ le résultat suivant :
<code>
Bienvenue <var>Lætitia</var>,
Toute l'équipe de <var>Quizz du jour</var> vous remercie de votre inscription
Toute léquipe de <var>Quizz du jour</var> vous remercie de votre inscription
et vous souhaite une agréable visite.
</code>
</example>
<p>
Il est également possible d'afficher du contenu de manière conditionnelle,
Il est également possible dafficher du contenu de manière conditionnelle,
en utilisant la syntaxe <code>{% if variable %}...{% endif %}</code> ou
<code>{% if variable %}...{% else %}...{% endif %}</code> pour vérifier la présence
d'une valeur dans <var>variable</var>.
dune valeur dans <var>variable</var>.
</p>
<example>
@ -62,27 +62,27 @@ Pour rappel, voici les renseignements que vous nous avez fournis :
</example>
<p>
Pour tester non pas la présence d'une valeur mais le contenu de celle-ci, la
Pour tester non pas la présence dune valeur mais le contenu de celle-ci, la
syntaxe est <code>{% if variable == valeur %}...{% endif %}</code>, avec également la
possibilité d'un <code>{% else %}</code>.
possibilité dun <code>{% else %}</code>.
</p>
<example>
<code>
Pour toute information complémentaire, n'hésitez pas à nous contacter au
Pour toute information complémentaire, nhésitez pas à nous contacter au
numéro {% if form_var_pays == "France" %}0800 123 456{% else %}+33 1 1234 5678{% endif %}.
</code>
</example>
<note><p>
Pour plus d'informations la syntaxe utilisée est celle des gabarits Django, il en
Pour plus dinformations la syntaxe utilisée est celle des gabarits Django, il en
existe une <link href="https://docs.djangoproject.com/fr/1.8/ref/templates/">documentation
détaillée</link> en ligne.
</p></note>
<note style="advanced"><p>
Précemment un autre langage de description des gabarits était utilisé (EZT),
caractérisé par l'utilisation de crochets (ex: <code>[form_var_email]</code>), il
caractérisé par lutilisation de crochets (ex: <code>[form_var_email]</code>), il
est toujours disponible mais désormais déconseillé; pour mémoire sa
<link href="https://github.com/gstein/ezt/blob/wiki/Syntax.md#directives">référence
détaillée</link> (en anglais) est toujours en ligne.

View File

@ -11,24 +11,24 @@
<desc>Quelques options</desc>
</info>
<title>Variables d'environnement</title>
<title>Variables denvironnement</title>
<p>
La majeure partie du paramétrage est accessible via les écrans de paramétrage
ou via le fichier <code>site-options.cfg</code>; pour faciliter le travail de
configuration quand il s'agit d'informations proches de l'administration
système, il existe également la possibilité d'utiliser des variables
d'environnement.
configuration quand il sagit dinformations proches de ladministration
système, il existe également la possibilité dutiliser des variables
denvironnement.
</p>
<section>
<title>Redirection des emails</title>
<p>
Accessible dans l'écran de paramétrage des options de debug, il est
Accessible dans lécran de paramétrage des options de debug, il est
aussi possible de forcer les emails générés par la plateforme à être
envoyés vers une adresse unique, en positionnant la variable
d'environnement <code>QOMMON_MAIL_REDIRECTION</code>.
denvironnement <code>QOMMON_MAIL_REDIRECTION</code>.
</p>
</section>
@ -38,9 +38,9 @@ d'environnement.
<p>
Par défaut les sauts de workflow sont évalués trois fois par heure, toutes
les vingt minutes. Il est possible de définir une autre fréquence dans la
variable d'environnement <code>WCS_JUMP_TIMEOUT_CHECKS</code>. Cette
variable denvironnement <code>WCS_JUMP_TIMEOUT_CHECKS</code>. Cette
variable doit contenir le nombre de vérifications à réaliser par heure, le
maximum est d'une vérification toutes les minutes (i.e.
maximum est dune vérification toutes les minutes (i.e.
<code>WCS_JUMP_TIMEOUT_CHECKS=60</code>).
</p>
</section>

View File

@ -8,29 +8,29 @@
<name>Frédéric Péters</name>
<email>fpeters@entrouvert.com</email>
</credit>
<desc>Autorisations d'accès spécifiques et accès de secours</desc>
<desc>Autorisations daccès spécifiques et accès de secours</desc>
</info>
<title>Permissions d'administration</title>
<title>Permissions dadministration</title>
<p>
Dans le fonctionnement de base un compte administrateur ouvre l'accès à
toutes les pages de l'interface d'administration, il est néanmoins possible
de paramétrer de manière plus fine l'accès aux différentes sections.
Dans le fonctionnement de base un compte administrateur ouvre laccès à
toutes les pages de linterface dadministration, il est néanmoins possible
de paramétrer de manière plus fine laccès aux différentes sections.
</p>
<p>
Dans l'espace de paramétrage, dans la section « Sécurité », suivez le lien
« Permissions d'administration ». Pour chacune des grandes sections de
l'administration (<gui>Formulaires</gui>, <gui>Workflows</gui>,
<gui>Utilisateurs</gui>…) vous pouvez restreindre l'accès aux utilisateurs
Dans lespace de paramétrage, dans la section « Sécurité », suivez le lien
« Permissions dadministration ». Pour chacune des grandes sections de
ladministration (<gui>Formulaires</gui>, <gui>Workflows</gui>,
<gui>Utilisateurs</gui>…) vous pouvez restreindre laccès aux utilisateurs
disposant de rôles particuliers.
</p>
<note style="info">
<p>
Disposer du rôle n'est pas suffisant, il reste nécessaire aux utilisateurs
concernés d'avoir « Compte administrateur » coché dans leur profil.
Disposer du rôle nest pas suffisant, il reste nécessaire aux utilisateurs
concernés davoir « Compte administrateur » coché dans leur profil.
</p>
</note>
@ -38,15 +38,15 @@
<title>Accès administrateur de secours</title>
<p>
En cas de mauvaise manipulation et de perte totale de l'accès à l'interface
d'administration, l'administrateur système dispose d'un moyen de secours
pour temporairement désactiver la vérification des permissions d'accès.
En cas de mauvaise manipulation et de perte totale de laccès à linterface
dadministration, ladministrateur système dispose dun moyen de secours
pour temporairement désactiver la vérification des permissions daccès.
</p>
<p>
Dans le répertoire de l'instance (<file>/var/lib/wcs/www.example.net/</file>
Dans le répertoire de linstance (<file>/var/lib/wcs/www.example.net/</file>
par exemple), un fichier <file>ADMIN_FOR_ALL</file> doit être créé,
contenant l'adresse IP qui sera utilisée pour la connexion.
contenant ladresse IP qui sera utilisée pour la connexion.
</p>
<screen>
@ -55,17 +55,17 @@
</screen>
<p>
L'interface d'administration devient alors accessible pour permettre la
correction de l'éventuelle erreur. Dans ce mode elle affiche son bandeau
Linterface dadministration devient alors accessible pour permettre la
correction de léventuelle erreur. Dans ce mode elle affiche son bandeau
en rouge vif, rappel que celui-ci est exceptionnel et dangereux. Dès
l'accès restauré, il est important de supprimer le fichier
laccès restauré, il est important de supprimer le fichier
<file>ADMIN_FOR_ALL</file>.
</p>
<note style="warning">
<p>
Pour des raisons de compatibilité, un fichier <file>ADMIN_FOR_ALL</file>
vide ouvre l'accès pour toutes les connexions; ce comportement
vide ouvre laccès pour toutes les connexions; ce comportement
dangereux sera supprimé dans une version à venir, son utilisation est
fortement découragée.
</p>

View File

@ -14,18 +14,18 @@
<title>Anonymisation</title>
<p>
Dans le circuit de traitement d'une demande, après qu'elle ait été traitée,
il peut être souhaité d'en conserver une trace à des fins statistiques, tout en
Dans le circuit de traitement dune demande, après quelle ait été traitée,
il peut être souhaité den conserver une trace à des fins statistiques, tout en
lui retirant toute information à caractère personnel.
</p>
<p>
L'élément « Anonymisation » répond à ce genre de besoin; il sera généralement
placé dans un état du workflow atteint après l'expiration d'un délai.
Lélément « Anonymisation » répond à ce genre de besoin; il sera généralement
placé dans un état du workflow atteint après lexpiration dun délai.
</p>
<note style="important"><p>
L'anonymisation des données privées est une obligation légale dans beaucoup de
Lanonymisation des données privées est une obligation légale dans beaucoup de
situations.
</p></note>

View File

@ -12,25 +12,25 @@
</info>
<title>Affichage d'un formulaire</title>
<title>Affichage dun formulaire</title>
<p>
Lors du traitement d'une demande il peut être nécessaire de demander des
informations supplémentaires à l'usager, ou qu'un agent complète la demande
avec des informations internes (à l'image d'un « cadre réservé à
l'administration » sur du papier).
Lors du traitement dune demande il peut être nécessaire de demander des
informations supplémentaires à lusager, ou quun agent complète la demande
avec des informations internes (à limage dun « cadre réservé à
ladministration » sur du papier).
</p>
<p>
L'élément « Afficher un formulaire » répond à ce genre de besoin, en
permettant la définition d'un formulaire de renseignement d'informations
Lélément « Afficher un formulaire » répond à ce genre de besoin, en
permettant la définition dun formulaire de renseignement dinformations
supplémentaires.
</p>
<p>
L'interface pour définir les champs est identique à celle utilisée pour définir
Linterface pour définir les champs est identique à celle utilisée pour définir
les formulaires généraux. Elle est accessible en cliquant sur le lien <gui>Éditer
les champs</gui>. Toutes les options sont disponibles, à l'exception du
les champs</gui>. Toutes les options sont disponibles, à lexception du
multipage.
</p>
@ -42,7 +42,7 @@ que la valeur qui sera renseignée par le champ soit sauvegardée.
<p>
Il est nécessaire également de définir à qui sera présenté le formulaire, via
le champ <gui>À</gui>, et de lui attribuer un <gui>Nom de variable</gui> qui
permettra aux valeurs sauvegardées d'être accessibles au niveau des <link
permettra aux valeurs sauvegardées dêtre accessibles au niveau des <link
xref="misc-substvars">variables de substitution</link>, sous la forme
<code><var>variable du formulaire</var>_var_<var>variable du
champ</var></code> (par exemple : <code>contact_interne_var_telephone</code>).
@ -50,7 +50,7 @@ champ</var></code> (par exemple : <code>contact_interne_var_telephone</code>).
<note><p>
Pour les champs de type fichier, la variable contiendra le nom du fichier.
L'adresse du fichier sera présente dans la variable nommée
Ladresse du fichier sera présente dans la variable nommée
<code><var>variable du formulaire</var>_var_<var>variable du champ</var>_url</code>.
</p></note>

View File

@ -15,13 +15,13 @@
<p>
Une fois la géolocalisation activée pour un formulaire, le workflow associé
peut faire appel à l'action de géolocalisation pour attacher des coordonnées
peut faire appel à laction de géolocalisation pour attacher des coordonnées
géographiques à la demande.
</p>
<p>
Ces coordonnées peuvent être obtenues par géocodage à partir d'une adresse ou
en les extrayant d'un champ « Carte » ou des métadonnées attachées à une
Ces coordonnées peuvent être obtenues par géocodage à partir dune adresse ou
en les extrayant dun champ « Carte » ou des métadonnées attachées à une
photographie qui aurait été transférée via un champ de type « Fichier ».
</p>
@ -32,13 +32,13 @@ paramétrant pour ne pas écraser des coordonnées précédemment acquises.
</p>
<p>
Une fois le géocodage réussi, l'information est mise à disposition dans les
Une fois le géocodage réussi, linformation est mise à disposition dans les
variables <code>form_geoloc_base_lat</code> pour la latitude et
<code>form_geoloc_base_lon</code> pour la longitude.
</p>
<section>
<title>Géocodage à partir d'une adresse</title>
<title>Géocodage à partir dune adresse</title>
<p>
Le paramétrage se fait en renseignant une chaîne de caractère produisant une
@ -50,10 +50,10 @@ variables <code>form_geoloc_base_lat</code> pour la latitude et
</section>
<section>
<title>Extraction d'un champ « Carte »</title>
<title>Extraction dun champ « Carte »</title>
<p>
Le paramètre est une expression faisant référence à une variable tirée d'un
Le paramètre est une expression faisant référence à une variable tirée dun
champ « Carte ».
</p>
@ -61,10 +61,10 @@ variables <code>form_geoloc_base_lat</code> pour la latitude et
</section>
<section>
<title>Extraction d'une photographie</title>
<title>Extraction dune photographie</title>
<p>
Le paramètre est une expression pointant une variable tirée d'un champ de
Le paramètre est une expression pointant une variable tirée dun champ de
type « Fichier »; le fichier ainsi pointé doit être une image contenant des
métadonnées EXIF, renseignant la localisation de la prise de vue.
</p>

View File

@ -14,15 +14,15 @@
<title>Changement de statut automatique</title>
<p>
L'action de changement de statut automatique permet de passer automatiquement
un formulaire d'un statut à un autre, avec la possibilité de définir les
Laction de changement de statut automatique permet de passer automatiquement
un formulaire dun statut à un autre, avec la possibilité de définir les
critères à rencontrer pour que la transition ait lieu.
</p>
<p>
Ces critères sont de trois ordres : une condition particulière, pouvant par
exemple porter sur des données du formulaire, un déclencheur externe, pour
l'interaction avec des systèmes externes, et un délai d'expiration, pour
linteraction avec des systèmes externes, et un délai dexpiration, pour
assurer une transition automatique après un temps donné.
</p>
@ -47,7 +47,7 @@ tous être remplis pour que la transition ait lieu.
<p>
Ce dispositif permet à un système tiers de provoquer la transition de statut,
il est décrit dans la documentation sur l'API, dans la page <link xref="api-workflow"/>.
il est décrit dans la documentation sur lAPI, dans la page <link xref="api-workflow"/>.
</p>
</section>
@ -55,7 +55,7 @@ tous être remplis pour que la transition ait lieu.
<title>Expiration</title>
<p>
Le critère d'expiration permet d'avoir une transition de statut après un
Le critère dexpiration permet davoir une transition de statut après un
certain délai seulement; il est par exemple utile pour créer un système de
relance automatique.
</p>
@ -66,8 +66,8 @@ tous être remplis pour que la transition ait lieu.
combiner les unités de temps, par exemple : <code>1 mois 10 jours</code>.
</p>
<p>
Il peut également être spécifié sous forme d'expression Python, en préfixant
celle-ci d'un signe =, la valeur doit alors être un nombre de secondes.
Il peut également être spécifié sous forme dexpression Python, en préfixant
celle-ci dun signe =, la valeur doit alors être un nombre de secondes.
</p>
</note>

View File

@ -14,7 +14,7 @@
<title>Variables de workflow</title>
<p>
Il arrive souvent qu'un même traitement doive être appliqué à différents
Il arrive souvent quun même traitement doive être appliqué à différents
formulaires, à un petit détail près, par exemple le document généré doit être
basé sur un modèle différent, un webservice externe doit être appelé avec une
autre donnée, etc.
@ -22,16 +22,16 @@ autre donnée, etc.
<p>
Dans ces situations il est bien sûr possible de dupliquer le workflow autant de
fois qu'il existe de variations mais ça entraîne rapidement un coût d'entretien
fois quil existe de variations mais ça entraîne rapidement un coût dentretien
trop élevé. Les variables de workflow sont une réponse à ce problème, elles
permettent de déléguer certains éléments du paramétrage d'un workflow aux
permettent de déléguer certains éléments du paramétrage dun workflow aux
formulaires associés.
</p>
<p>
Pratiquement, la définition des variables se rapproche de la définition des
formulaires destinés aux usagers, il s'agit de définir une série de champs. Il
y a quand même une différence, lors de la définition d'un champ celui-ci doit
formulaires destinés aux usagers, il sagit de définir une série de champs. Il
y a quand même une différence, lors de la définition dun champ celui-ci doit
être associé soit à un nom de variable, qui pourra alors être utilisé dans le
formulaire, soit directement à un élément du workflow, qui sera alors substitué
automatiquement. Les deux usages sont décrits par la suite.
@ -57,8 +57,8 @@ cliquer dessus ouvre une fenêtre avec la liste des paramètres à remplir.
<p>
Un workflow de concours pourrait ainsi avoir comme variable la
description du prix (nommée <code>description_prix</code>), dans la
définition d'un formulaire la variable serait remplie avec "Deux
places de cinéma" et dans le traitement, une action d'envoi de courriel
définition dun formulaire la variable serait remplie avec "Deux
places de cinéma" et dans le traitement, une action denvoi de courriel
pourrait décrire celui-ci ainsi :
</p>
@ -71,8 +71,8 @@ tirage au sort.
</example>
<p>
Une autre utilisation pourrait être d'avoir une liste à choix multiple comme
option de workflow, reprenant par exemple les types d'envoi possibles
Une autre utilisation pourrait être davoir une liste à choix multiple comme
option de workflow, reprenant par exemple les types denvoi possibles
(courrier standard, recommandé, recommandé avec accusé de réception…) (sous
le nom <code>mode_envoi</code>); du coté des formulaires il pourrait y avoir
un champ de type « Liste » qui serait rempli des éléments qui auraient été
@ -86,11 +86,11 @@ tirage au sort.
<title>Option substituant un élément de workflow</title>
<p>
Dans une variation de l'exemple précédent du coucours, l'entièreté du
contenu du courriel pourrait relever d'une option; dans cette situation,
Dans une variation de lexemple précédent du coucours, lentièreté du
contenu du courriel pourrait relever dune option; dans cette situation,
plutôt que définir du côté du courriel que son contenu serait
<code>[form_option_contenu_courriel]</code>, il est possible de directement
associer l'option de workflow à l'élément d'envoi de courriel.
associer loption de workflow à lélément denvoi de courriel.
</p>
<p>

View File

@ -14,12 +14,12 @@
<title>Appel à un webservice</title>
<p>
Cette action permet d'appeler un système tiers et d'éventuellement lui
Cette action permet dappeler un système tiers et déventuellement lui
transmettre des données, dont celles du formulaire en cours.
</p>
<p>
Le champ URL est obligatoire, il doit contenir l'adresse qui sera appelée,
Le champ URL est obligatoire, il doit contenir ladresse qui sera appelée,
celle-ci peut contenir des <link xref="misc-substvars">variables</link>, pour
par exemple transmettre une information particulière.
</p>
@ -30,24 +30,24 @@ par exemple transmettre une information particulière.
<p>
Le tableau « Données à envoyer en paramètre » permet de décrire des données qui
seront transmises sous la forme de paramètres d'URL. Sur chaque ligne, la
seront transmises sous la forme de paramètres dURL. Sur chaque ligne, la
colonne de gauche est le nom de la clé, celle de droite la valeur. La valeur
peut être une expression Python, pour cela elle doit commencer par le signe
« = ». Les paramètres d'URL ne peuvent être que des chaînes, si ce n'est pas le
« = ». Les paramètres dURL ne peuvent être que des chaînes, si ce nest pas le
cas la donnée sera transformée en chaîne de force.
</p>
<p>
La case à cocher « Envoyer le formulaire (POST, en JSON) » indique que
l'ensemble des données du formulaire doivent être transmises, avec un appel de
lensemble des données du formulaire doivent être transmises, avec un appel de
type <code>POST</code>, dont le contenu correspondra au formulaire encodé au
format JSON, comme décrit dans cette <link xref="api-get#pull">page sur
l'API</link>.
lAPI</link>.
</p>
<p>
Le tableau « Données à envoyer en POST » permet de décrire des données qui
seront transmises sous la forme d'un dictionnaire clé-valeur au format JSON.
seront transmises sous la forme dun dictionnaire clé-valeur au format JSON.
Sur chaque ligne, la colonne de gauche est le nom de la clé, celle de droite la
valeur. La valeur peut être une expression Python, pour cela elle doit
commencer par le signe « = ».
@ -84,14 +84,14 @@ commencer par le signe « = ».
dans le JSON du formulaire, dans une clé « extra ».
</p></item>
<item><p>
Si aucune donnée n'est indiquée et que le formulaire ne doit pas être transmis,
alors la requête HTTP effectuée est un GET sur l'URL.
Si aucune donnée nest indiquée et que le formulaire ne doit pas être transmis,
alors la requête HTTP effectuée est un GET sur lURL.
</p></item>
</list>
</note>
<p>
Le paramètre « Nom de variable » permet d'enregistrer le résultat retourné
Le paramètre « Nom de variable » permet denregistrer le résultat retourné
par le webservice, le retour HTTP de celui-ci sera enregistré dans
<code><var>variable</var>_status</code> (voir plus loin, le traitement des
erreurs) et le contenu même de la réponse, si elle est au format JSON,
@ -100,7 +100,7 @@ sera enregistré dans <code><var>variable</var>_response</code>.
<p>
Le paramètre « Clé de signature de la requête » permet de signer la requête
avant de l'envoyer au webservice, avec la valeur du champ comme clé de
avant de lenvoyer au webservice, avec la valeur du champ comme clé de
signature.
</p>
@ -109,13 +109,13 @@ signature.
<p>
En précisant un nom de variable (exemple : <code>webservice</code>), il est
possible de placer derrière l'appel au webservice une action de <link
possible de placer derrière lappel au webservice une action de <link
xref="wf-jump">changement de statut automatique</link> faisant référence
à la variable.
</p>
<p>
Par exemple, pour s'assurer que le retour fait par le webservice était bien
Par exemple, pour sassurer que le retour fait par le webservice était bien
un code HTTP 200 et que le contenu de la réponse contenait bien un
dictionnaire <code>data</code> dont la clé <code>result</code> valait
<code>OK</code> :