diff --git a/wcs/locale/fr/LC_MESSAGES/django.po b/wcs/locale/fr/LC_MESSAGES/django.po
index fbb4cf1b6..733fa6553 100644
--- a/wcs/locale/fr/LC_MESSAGES/django.po
+++ b/wcs/locale/fr/LC_MESSAGES/django.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: wcs 0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-03 16:05+0200\n"
+"POT-Creation-Date: 2020-08-17 08:17+0200\n"
"PO-Revision-Date: 2019-10-30 09:10+0100\n"
"Last-Translator: Thomas Noël \n"
"Language-Team: french\n"
@@ -14,8 +14,8 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: admin/blocks.py:56 admin/blocks.py:99 admin/categories.py:79
-#: admin/categories.py:128 admin/categories.py:133 admin/data_sources.py:249
+#: admin/blocks.py:60 admin/blocks.py:103 admin/categories.py:79
+#: admin/categories.py:128 admin/categories.py:133 admin/data_sources.py:250
#: admin/fields.py:147 admin/forms.py:608 admin/forms.py:923 admin/forms.py:928
#: admin/logged_errors.py:142 admin/mail_templates.py:174 admin/roles.py:93
#: admin/roles.py:182 admin/roles.py:187 admin/settings.py:360
@@ -26,40 +26,41 @@ msgstr ""
#: admin/workflows.py:1217 admin/workflows.py:1222 admin/workflows.py:1272
#: admin/workflows.py:1569 admin/workflows.py:1767 admin/workflows.py:1772
#: admin/wscalls.py:102 admin/wscalls.py:166 admin/wscalls.py:171
-#: backoffice/cards.py:177 backoffice/management.py:1455
-#: backoffice/management.py:1519 backoffice/submission.py:61
+#: backoffice/cards.py:177 backoffice/management.py:1456
+#: backoffice/management.py:1520 backoffice/submission.py:62
#: templates/wcs/backoffice/data-sources.html:8
#: templates/wcs/backoffice/mail-template.html:7
msgid "Delete"
msgstr "Supprimer"
-#: admin/blocks.py:57 admin/forms.py:612 admin/settings.py:504
+#: admin/blocks.py:61 admin/forms.py:612 admin/settings.py:504
#: admin/settings.py:880 admin/settings.py:881 admin/settings.py:883
#: admin/settings.py:976 admin/workflows.py:1571 backoffice/cards.py:181
#: qommon/admin/menu.py:109 templates/wcs/backoffice/data-sources.html:7
msgid "Export"
msgstr "Export"
-#: admin/blocks.py:58 admin/blocks.py:149 admin/blocks.py:151
-#: admin/settings.py:447 admin/settings.py:587 admin/settings.py:870
-#: admin/settings.py:1038 backoffice/root.py:70 qommon/admin/settings.py:29
+#: admin/blocks.py:62 admin/blocks.py:122 admin/blocks.py:154
+#: admin/blocks.py:156 admin/settings.py:447 admin/settings.py:587
+#: admin/settings.py:870 admin/settings.py:1038 backoffice/root.py:70
+#: qommon/admin/settings.py:29
msgid "Settings"
msgstr "Paramètres"
-#: admin/blocks.py:65
+#: admin/blocks.py:69
msgid "There are not yet any fields defined."
msgstr "Il n’y a pas encore de champs définis."
-#: admin/blocks.py:75
+#: admin/blocks.py:79
msgid "Usage"
msgstr "Utilisation"
-#: admin/blocks.py:88
+#: admin/blocks.py:92
msgid "You are about to irrevocably delete this block."
msgstr "Vous allez définitivement supprimer ce bloc."
-#: admin/blocks.py:90 admin/blocks.py:135 admin/categories.py:46
-#: admin/categories.py:149 admin/data_sources.py:122 admin/data_sources.py:241
+#: admin/blocks.py:94 admin/blocks.py:140 admin/categories.py:46
+#: admin/categories.py:149 admin/data_sources.py:123 admin/data_sources.py:242
#: admin/fields.py:59 admin/fields.py:142 admin/fields.py:347 admin/forms.py:93
#: admin/forms.py:280 admin/forms.py:333 admin/forms.py:661 admin/forms.py:700
#: admin/forms.py:753 admin/forms.py:792 admin/forms.py:830 admin/forms.py:947
@@ -75,8 +76,8 @@ msgstr "Vous allez définitivement supprimer ce bloc."
#: admin/workflows.py:731 admin/workflows.py:759 admin/workflows.py:778
#: admin/workflows.py:1007 admin/workflows.py:1100 admin/workflows.py:1237
#: admin/wscalls.py:53 backoffice/data_management.py:180
-#: backoffice/management.py:643 backoffice/management.py:660 forms/root.py:343
-#: forms/root.py:1301 qommon/admin/emails.py:130 qommon/admin/emails.py:215
+#: backoffice/management.py:643 backoffice/management.py:660 forms/root.py:349
+#: forms/root.py:1323 qommon/admin/emails.py:130 qommon/admin/emails.py:215
#: qommon/admin/logger.py:154 qommon/admin/settings.py:39
#: qommon/admin/settings.py:86 qommon/admin/settings.py:120
#: qommon/admin/texts.py:127 qommon/ident/franceconnect.py:199
@@ -89,14 +90,14 @@ msgstr "Vous allez définitivement supprimer ce bloc."
msgid "Submit"
msgstr "Valider"
-#: admin/blocks.py:93
+#: admin/blocks.py:97
msgid "This block is still used, it cannot be deleted."
msgstr "Ce bloc est encore utilisé; il ne peut pas être supprimé."
-#: admin/blocks.py:95 admin/blocks.py:136 admin/blocks.py:182
-#: admin/blocks.py:203 admin/categories.py:47 admin/categories.py:129
-#: admin/categories.py:150 admin/data_sources.py:123 admin/data_sources.py:245
-#: admin/data_sources.py:330 admin/fields.py:60 admin/fields.py:143
+#: admin/blocks.py:99 admin/blocks.py:141 admin/blocks.py:187
+#: admin/blocks.py:208 admin/categories.py:47 admin/categories.py:129
+#: admin/categories.py:150 admin/data_sources.py:124 admin/data_sources.py:246
+#: admin/data_sources.py:331 admin/fields.py:60 admin/fields.py:143
#: admin/forms.py:94 admin/forms.py:281 admin/forms.py:334 admin/forms.py:662
#: admin/forms.py:701 admin/forms.py:754 admin/forms.py:793 admin/forms.py:831
#: admin/forms.py:924 admin/forms.py:948 admin/forms.py:1158
@@ -117,9 +118,9 @@ msgstr "Ce bloc est encore utilisé; il ne peut pas être supprimé."
#: admin/workflows.py:1238 admin/workflows.py:1337 admin/workflows.py:1762
#: admin/workflows.py:1768 admin/workflows.py:1921 admin/wscalls.py:54
#: admin/wscalls.py:167 backoffice/data_management.py:181
-#: backoffice/management.py:164 backoffice/management.py:1476
-#: backoffice/management.py:1520 backoffice/submission.py:62 forms/root.py:129
-#: forms/root.py:452 forms/root.py:1303 qommon/admin/emails.py:131
+#: backoffice/management.py:164 backoffice/management.py:1477
+#: backoffice/management.py:1521 backoffice/submission.py:63 forms/root.py:129
+#: forms/root.py:458 forms/root.py:1325 qommon/admin/emails.py:131
#: qommon/admin/emails.py:218 qommon/admin/settings.py:40
#: qommon/admin/settings.py:87 qommon/admin/settings.py:121
#: qommon/admin/texts.py:130 qommon/ident/franceconnect.py:200
@@ -133,15 +134,15 @@ msgstr "Ce bloc est encore utilisé; il ne peut pas être supprimé."
msgid "Cancel"
msgstr "Annuler"
-#: admin/blocks.py:100
+#: admin/blocks.py:104
msgid "Delete Block"
msgstr "Supprimer le bloc"
-#: admin/blocks.py:102
+#: admin/blocks.py:106
msgid "Deleting Block:"
msgstr "Suppression du bloc :"
-#: admin/blocks.py:119 admin/blocks.py:180 admin/data_sources.py:53
+#: admin/blocks.py:124 admin/blocks.py:185 admin/data_sources.py:53
#: admin/forms.py:81 admin/forms.py:743 admin/mail_templates.py:47
#: admin/mail_templates.py:85 admin/users.py:52 admin/users.py:144
#: admin/workflows.py:970 admin/workflows.py:1005 admin/workflows.py:1063
@@ -152,14 +153,14 @@ msgstr "Suppression du bloc :"
msgid "Name"
msgstr "Nom"
-#: admin/blocks.py:124 admin/data_sources.py:119 admin/mail_templates.py:100
+#: admin/blocks.py:129 admin/data_sources.py:120 admin/mail_templates.py:100
#: admin/wscalls.py:45 fields.py:570 wf/attachment.py:184
#: wf/create_formdata.py:267 wf/export_to_model.py:344 wf/form.py:111
#: wf/wscall.py:228 workflows.py:1326 workflows.py:2360 workflows.py:2476
msgid "Identifier"
msgstr "Identifiant"
-#: admin/blocks.py:128
+#: admin/blocks.py:133
msgid ""
"It is for example used as prefix for variable names in the digest template "
"below."
@@ -167,40 +168,40 @@ msgstr ""
"Il est notamment utilisé comme préfixe aux variables dans le gabarit de "
"résumé ci-dessous."
-#: admin/blocks.py:131
+#: admin/blocks.py:136
msgid "The identifier can not be modified as the block is in use."
msgstr "L’identifiant ne peut pas être modifié car le bloc est utilisé."
-#: admin/blocks.py:133 admin/forms.py:554 backoffice/cards.py:155
+#: admin/blocks.py:138 admin/forms.py:554 backoffice/cards.py:155
msgid "Digest Template"
msgstr "Gabarit du résumé"
-#: admin/blocks.py:165 admin/blocks.py:172 admin/settings.py:866
+#: admin/blocks.py:170 admin/blocks.py:177 admin/settings.py:866
msgid "Fields Blocks"
msgstr "Blocs de champs"
-#: admin/blocks.py:181 admin/fields.py:338 admin/mail_templates.py:48
+#: admin/blocks.py:186 admin/fields.py:338 admin/mail_templates.py:48
#: admin/workflows.py:552 admin/workflows.py:971 admin/workflows.py:1066
#: admin/workflows.py:1316 admin/workflows.py:1336 admin/workflows.py:1680
#: backoffice/data_management.py:108 qommon/admin/menu.py:102
msgid "Add"
msgstr "Ajouter"
-#: admin/blocks.py:191 admin/blocks.py:192 admin/blocks.py:194
+#: admin/blocks.py:196 admin/blocks.py:197 admin/blocks.py:199
msgid "New Fields Block"
msgstr "Nouveau bloc de champs"
-#: admin/blocks.py:201 admin/data_sources.py:328 admin/forms.py:943
+#: admin/blocks.py:206 admin/data_sources.py:329 admin/forms.py:943
#: admin/forms.py:1604 admin/settings.py:997 admin/workflows.py:1917
#: backoffice/data_management.py:179 qommon/ident/password.py:818
msgid "File"
msgstr "Fichier"
-#: admin/blocks.py:202 admin/blocks.py:215 admin/blocks.py:217
+#: admin/blocks.py:207 admin/blocks.py:220 admin/blocks.py:222
msgid "Import Fields Block"
msgstr "Importer un bloc de champs"
-#: admin/blocks.py:214 admin/data_sources.py:286 admin/data_sources.py:341
+#: admin/blocks.py:219 admin/data_sources.py:287 admin/data_sources.py:342
#: admin/forms.py:1522 admin/forms.py:1619 admin/settings.py:502
#: admin/settings.py:1004 admin/settings.py:1005 admin/settings.py:1007
#: admin/settings.py:1019 admin/settings.py:1021 admin/workflows.py:1825
@@ -209,33 +210,33 @@ msgstr "Importer un bloc de champs"
msgid "Import"
msgstr "Import"
-#: admin/blocks.py:218
+#: admin/blocks.py:223
msgid "You can install a new fields block by uploading a file."
msgstr ""
"Vous pouvez installer un nouveau bloc de champs en téléchargeant un fichier."
-#: admin/blocks.py:238 admin/forms.py:995 admin/forms.py:1661
+#: admin/blocks.py:243 admin/forms.py:995 admin/forms.py:1661
#: admin/workflows.py:1967
#, python-format
msgid "Invalid File (%s)"
msgstr "Fichier invalide (%s)"
-#: admin/blocks.py:240 admin/data_sources.py:363 admin/forms.py:997
+#: admin/blocks.py:245 admin/data_sources.py:364 admin/forms.py:997
#: admin/forms.py:1663 admin/workflows.py:1969
msgid "Invalid File"
msgstr "Fichier invalide"
-#: admin/blocks.py:249 admin/workflows.py:1981
+#: admin/blocks.py:254 admin/workflows.py:1981
#, python-format
msgid "Copy of %s"
msgstr "Copie de %s"
-#: admin/blocks.py:251 admin/workflows.py:1983
+#: admin/blocks.py:256 admin/workflows.py:1983
#, python-format
msgid "Copy of %(name)s (%(no)d)"
msgstr "Copie de %(name)s (%(no)d)"
-#: admin/blocks.py:257
+#: admin/blocks.py:262
msgid "This fields block has been successfully imported."
msgstr "Ce bloc de champs a été importé correctement."
@@ -263,7 +264,7 @@ msgstr "Si précisée, redirige la page de la catégorie vers cette URL."
msgid "This name is already used"
msgstr "Ce nom est déjà utilisé"
-#: admin/categories.py:80 admin/categories.py:117 admin/data_sources.py:229
+#: admin/categories.py:80 admin/categories.py:117 admin/data_sources.py:230
#: admin/mail_templates.py:152 admin/roles.py:94 admin/roles.py:171
#: admin/users.py:236 admin/users.py:268 admin/workflows.py:627
#: admin/workflows.py:1253 admin/workflows.py:1751 admin/wscalls.py:103
@@ -303,7 +304,7 @@ msgstr "Modifier la description de la catégorie"
#: admin/categories.py:174 admin/categories.py:178 admin/categories.py:233
#: admin/forms.py:1521 admin/settings.py:586 admin/settings.py:869
-#: forms/root.py:1656
+#: forms/root.py:1678
msgid "Categories"
msgstr "Catégories"
@@ -316,7 +317,7 @@ msgid "Categories are used to sort the different forms."
msgstr ""
"Les catégories sont utilisées pour y ranger les différents formulaires."
-#: admin/categories.py:209 admin/data_sources.py:301 admin/forms.py:1574
+#: admin/categories.py:209 admin/data_sources.py:302 admin/forms.py:1574
#: admin/roles.py:236 admin/users.py:478 admin/workflows.py:1890
#: admin/wscalls.py:214 backoffice/cards.py:230 qommon/ident/idp.py:227
#: qommon/ident/idp.py:312 qommon/ident/idp.py:487 workflows.py:735
@@ -327,16 +328,16 @@ msgstr "Nouveau"
msgid "Additional options"
msgstr "Options supplémentaires"
-#: admin/data_sources.py:60 fields.py:812 fields.py:1643 fields.py:1757
+#: admin/data_sources.py:60 fields.py:812 fields.py:1651 fields.py:1765
#: templates/wcs/backoffice/data-sources.html:5
msgid "Data Source"
msgstr "Source de données"
-#: admin/data_sources.py:65
+#: admin/data_sources.py:66
msgid "Cache Duration"
msgstr "Durée de conservation en cache"
-#: admin/data_sources.py:66
+#: admin/data_sources.py:67
msgid ""
"Caching data will improve performances but will keep changes from being "
"visible immediately. You should keep this duration reasonably short."
@@ -345,21 +346,21 @@ msgstr ""
"changement ne sera pas immédiatement visible. Il est conseillé de garder une "
"durée relativement courte."
-#: admin/data_sources.py:77
+#: admin/data_sources.py:78
msgid "Query Parameter"
msgstr "Paramètre de requête"
-#: admin/data_sources.py:78
+#: admin/data_sources.py:79
msgid "Name of the parameter to use for querying source (typically, q)"
msgstr ""
"Nom du paramètre à utiliser pour faire une requête sur la source de données "
"(usuellement « q »)"
-#: admin/data_sources.py:87
+#: admin/data_sources.py:88
msgid "Id Parameter"
msgstr "Paramètre d’identifiant"
-#: admin/data_sources.py:88
+#: admin/data_sources.py:89
msgid ""
"Name of the parameter to use to get a given entry from data source "
"(typically, id)"
@@ -367,93 +368,95 @@ msgstr ""
"Nom du paramètre à utiliser pour obtenir un enregistrement précis depuis la "
"source de données (usuellement « id »)"
-#: admin/data_sources.py:97
+#: admin/data_sources.py:98
msgid "Id Property"
msgstr "Propriété avec l’identifiant"
-#: admin/data_sources.py:98
+#: admin/data_sources.py:99
msgid ""
"Name of the property to use to get a given entry from data source (default: "
"id)"
msgstr ""
-"Nom de la propriété où trouver l’idenfiant unique d’une donnée "
-"(par défaut : id)"
+"Nom de la propriété où trouver l’idenfiant unique d’une donnée (par défaut : "
+"id)"
-#: admin/data_sources.py:107
+#: admin/data_sources.py:108
msgid "Label template"
msgstr "Gabarit pour le libellé"
-#: admin/data_sources.py:108
+#: admin/data_sources.py:109
msgid "Django expression to build label of each value (default: {{ text }})"
-msgstr "Gabarit Django à utiliser pour construire le libellé des valeurs (par défaut : {{ text }})"
+msgstr ""
+"Gabarit Django à utiliser pour construire le libellé des valeurs (par "
+"défaut : {{ text }})"
-#: admin/data_sources.py:136 admin/forms.py:764 admin/wscalls.py:68
+#: admin/data_sources.py:137 admin/forms.py:764 admin/wscalls.py:68
msgid "This name is already used."
msgstr "Ce nom est déjà utilisé."
-#: admin/data_sources.py:138 admin/mail_templates.py:126 admin/wscalls.py:70
+#: admin/data_sources.py:139 admin/mail_templates.py:126 admin/wscalls.py:70
msgid "This value is already used."
msgstr "Cette valeur est déjà utilisée."
-#: admin/data_sources.py:189
+#: admin/data_sources.py:190
msgid "Preview (first items only)"
msgstr "Aperçu (premiers éléments seulement)"
-#: admin/data_sources.py:197
+#: admin/data_sources.py:198
msgid "error: not a string"
msgstr "erreur : n’est pas une chaîne de caractères"
-#: admin/data_sources.py:211
+#: admin/data_sources.py:212
msgid "Additional keys are available:"
msgstr "Autres clés disponibles :"
-#: admin/data_sources.py:230 admin/data_sources.py:232
+#: admin/data_sources.py:231 admin/data_sources.py:233
msgid "Edit Data Source"
msgstr "Modifier la source de données"
-#: admin/data_sources.py:240
+#: admin/data_sources.py:241
msgid "You are about to irrevocably delete this data source."
msgstr "Vous allez définitivement supprimer cette source de données."
-#: admin/data_sources.py:244
+#: admin/data_sources.py:245
msgid "This datasource is still used, it cannot be deleted."
msgstr ""
"La source de données est encore utilisée; elle ne peut pas être supprimée."
-#: admin/data_sources.py:250
+#: admin/data_sources.py:251
msgid "Delete Data Source"
msgstr "Supprimer la source de données"
-#: admin/data_sources.py:252
+#: admin/data_sources.py:253
msgid "Deleting Data Source:"
msgstr "Suppression de la source de données :"
-#: admin/data_sources.py:274 admin/data_sources.py:280
-#: admin/data_sources.py:284
+#: admin/data_sources.py:275 admin/data_sources.py:281
+#: admin/data_sources.py:285
msgid "Data Sources"
msgstr "Sources de données"
-#: admin/data_sources.py:287 admin/data_sources.py:315
-#: admin/data_sources.py:317
+#: admin/data_sources.py:288 admin/data_sources.py:316
+#: admin/data_sources.py:318
msgid "New Data Source"
msgstr "Nouvelle source de données"
-#: admin/data_sources.py:326
+#: admin/data_sources.py:327
msgid "Import Data Source"
msgstr "Importer une source de données"
-#: admin/data_sources.py:346
+#: admin/data_sources.py:347
msgid "You can install a new data source by uploading a file."
msgstr ""
"Vous pouvez enregistrer une nouvelle source de données en téléchargeant un "
"fichier."
-#: admin/data_sources.py:358
+#: admin/data_sources.py:359
msgid "This datasource has been successfully imported."
msgstr "Cette source de données a été importée correctement."
#: admin/fields.py:49 admin/settings.py:146 admin/users.py:458
-#: data_sources.py:71 fields.py:59 qommon/form.py:1005
+#: data_sources.py:71 fields.py:59 qommon/form.py:1009
#: qommon/ident/password.py:732
msgid "None"
msgstr "Aucun"
@@ -500,7 +503,7 @@ msgstr "Vous allez supprimer le champ « %s »."
msgid "Also remove all fields from the page"
msgstr "Supprimer tous les champs de la page"
-#: admin/fields.py:216 fields.py:1974
+#: admin/fields.py:216 fields.py:1982
msgid "Page"
msgstr "Page"
@@ -550,18 +553,18 @@ msgstr "Limiter l’affichage à cette page"
msgid "New Field"
msgstr "Nouveau champ"
-#: admin/fields.py:333 admin/fields.py:385 admin/settings.py:264 fields.py:566
-#: fields.py:684 fields.py:750 fields.py:754 fields.py:2016
+#: admin/fields.py:333 admin/fields.py:392 admin/settings.py:264 fields.py:566
+#: fields.py:684 fields.py:750 fields.py:754 fields.py:2024
#: wf/backoffice_fields.py:94 wf/wscall.py:162 workflows.py:2342
#: workflows.py:2459
msgid "Label"
msgstr "Libellé"
-#: admin/fields.py:335 admin/fields.py:386 admin/workflows.py:1314
+#: admin/fields.py:335 admin/fields.py:393 admin/workflows.py:1314
msgid "Type"
msgstr "Type"
-#: admin/fields.py:344 admin/fields.py:389
+#: admin/fields.py:344 admin/fields.py:396
msgid "Or import fields from:"
msgstr "Ou importer les champs depuis :"
@@ -574,7 +577,7 @@ msgstr "page %d"
msgid "There are not yet any fields for this form."
msgstr "Il n’y a pas encore de champs dans ce formulaire."
-#: admin/fields.py:394 admin/fields.py:434 admin/workflows.py:566
+#: admin/fields.py:401 admin/fields.py:441 admin/workflows.py:566
#: admin/workflows.py:576 admin/workflows.py:1295 admin/workflows.py:1301
#: admin/workflows.py:1714 admin/workflows.py:1724
msgid "Submitted form was not filled properly."
@@ -642,8 +645,8 @@ msgstr "Afficher aux utilisateurs non-connectés"
msgid "Enable support for tracking codes"
msgstr "Activer la gestion des codes de suivi"
-#: admin/forms.py:190 admin/forms.py:528 backoffice/management.py:2657
-#: backoffice/submission.py:164 forms/root.py:1734
+#: admin/forms.py:190 admin/forms.py:528 backoffice/management.py:2658
+#: backoffice/submission.py:183 forms/root.py:1756
msgid "Tracking Code"
msgstr "Code de suivi"
@@ -719,7 +722,7 @@ msgid "Location label (empty to disable geolocation)"
msgstr "Libellé de géolocalisation (vide pour désactiver la géolocalisation)"
#: admin/forms.py:255 admin/forms.py:533 admin/settings.py:542
-#: backoffice/cards.py:146 fields.py:63 wf/geolocate.py:38
+#: backoffice/cards.py:146 fields.py:63 wf/geolocate.py:39
msgid "Geolocation"
msgstr "Géolocalisation"
@@ -763,7 +766,7 @@ msgstr "Rôle dans ce workflow"
msgid "Role"
msgstr "Rôle"
-#: admin/forms.py:371 backoffice/submission.py:60
+#: admin/forms.py:371 backoffice/submission.py:61
msgid "You are about to irrevocably delete this form."
msgstr "Vous allez définitivement supprimer ce formulaire."
@@ -1025,7 +1028,7 @@ msgstr ""
msgid "I understand the danger, make it editable nevertheless."
msgstr "Je comprends le danger, le rendre éditable malgré tout."
-#: admin/forms.py:779 admin/forms.py:782 backoffice/management.py:1462
+#: admin/forms.py:779 admin/forms.py:782 backoffice/management.py:1463
#: fields.py:659 wf/attachment.py:161 wf/notification.py:84
msgid "Title"
msgstr "Titre"
@@ -1159,7 +1162,7 @@ msgstr "Anonymisation des formulaires"
msgid "Anonymising"
msgstr "Anonymisation"
-#: admin/forms.py:1387 admin/settings.py:1048 backoffice/management.py:2454
+#: admin/forms.py:1387 admin/settings.py:1048 backoffice/management.py:2455
#: qommon/admin/emails.py:192 qommon/admin/menu.py:129
#: qommon/admin/texts.py:105 qommon/ident/password.py:1024
msgid "Back"
@@ -1199,8 +1202,8 @@ msgstr ""
#: admin/settings.py:581 admin/settings.py:861 admin/workflows.py:1549
#: admin/workflows.py:1868 backoffice/management.py:473
#: backoffice/management.py:542 formdef.py:86 forms/common.py:147
-#: forms/root.py:65 forms/root.py:1425 forms/root.py:1711 forms/root.py:1716
-#: forms/root.py:1721 forms/root.py:1726 forms/root.py:1731
+#: forms/root.py:65 forms/root.py:1447 forms/root.py:1733 forms/root.py:1738
+#: forms/root.py:1743 forms/root.py:1748 forms/root.py:1753
msgid "Forms"
msgstr "Formulaires"
@@ -1223,8 +1226,8 @@ msgstr "Vous devez d’abord définir des rôles"
#: admin/forms.py:1545 admin/settings.py:510 backoffice/management.py:282
#: backoffice/management.py:732 backoffice/management.py:775
-#: backoffice/management.py:2861 backoffice/submission.py:313
-#: forms/root.py:1499
+#: backoffice/management.py:2862 backoffice/submission.py:332
+#: forms/root.py:1521
msgid "Misc"
msgstr "Divers"
@@ -1242,7 +1245,7 @@ msgid "Latest occurence:"
msgstr "Dernière occurence :"
#: admin/logged_errors.py:49 backoffice/management.py:756
-#: backoffice/management.py:2520
+#: backoffice/management.py:2521
msgid "Count:"
msgstr "Nombre :"
@@ -1257,7 +1260,7 @@ msgstr "%s :"
msgid "Workflow: "
msgstr "Workflow : "
-#: admin/logged_errors.py:67 backoffice/management.py:2685
+#: admin/logged_errors.py:67 backoffice/management.py:2686
msgid "Status:"
msgstr "Statut :"
@@ -1265,37 +1268,37 @@ msgstr "Statut :"
msgid "Action:"
msgstr "Action :"
-#: admin/logged_errors.py:79 data_sources.py:76 data_sources.py:477
-#: fields.py:61 qommon/form.py:2482 qommon/form.py:2584
+#: admin/logged_errors.py:79 data_sources.py:77 data_sources.py:487
+#: fields.py:61 qommon/form.py:2486 qommon/form.py:2588
msgid "Python Expression"
msgstr "Expression Python"
-#: admin/logged_errors.py:80 backoffice/management.py:2903 qommon/form.py:2582
+#: admin/logged_errors.py:80 backoffice/management.py:2904 qommon/form.py:2586
msgid "Django Expression"
msgstr "Expression Django"
#: admin/logged_errors.py:81 admin/settings.py:539 admin/settings.py:831
-#: admin/settings.py:832 admin/settings.py:834 backoffice/management.py:2903
-#: qommon/form.py:2481 qommon/form.py:2526
+#: admin/settings.py:832 admin/settings.py:834 backoffice/management.py:2904
+#: qommon/form.py:2485 qommon/form.py:2530
msgid "Template"
msgstr "Gabarit"
#: admin/logged_errors.py:82 admin/settings.py:1155
-#: backoffice/management.py:631 qommon/admin/texts.py:147 qommon/form.py:2480
-#: qommon/form.py:2525
+#: backoffice/management.py:631 qommon/admin/texts.py:147 qommon/form.py:2484
+#: qommon/form.py:2529
msgid "Text"
msgstr "Texte"
-#: admin/logged_errors.py:83 backoffice/management.py:1285
-#: backoffice/management.py:1295 backoffice/management.py:2874
-#: backoffice/management.py:3129 formdata.py:214 formdata.py:532
+#: admin/logged_errors.py:83 backoffice/management.py:1286
+#: backoffice/management.py:1296 backoffice/management.py:2875
+#: backoffice/management.py:3130 formdata.py:214 formdata.py:532
#: qommon/admin/logger.py:109 workflows.py:722
msgid "Unknown"
msgstr "Inconnu"
-#: admin/logged_errors.py:88 backoffice/management.py:2951
-#: backoffice/management.py:2954 backoffice/management.py:2975
-#: backoffice/management.py:2997
+#: admin/logged_errors.py:88 backoffice/management.py:2952
+#: backoffice/management.py:2955 backoffice/management.py:2976
+#: backoffice/management.py:2998
msgid "Error message:"
msgstr "Message d’erreur :"
@@ -1316,7 +1319,7 @@ msgid "Stack trace (most recent call first)"
msgstr "Trace (appels les plus récents en premier)"
#: admin/logged_errors.py:108 backoffice/management.py:886
-#: backoffice/management.py:2315 backoffice/management.py:2352 formdata.py:889
+#: backoffice/management.py:2316 backoffice/management.py:2353 formdata.py:889
#: formdata.py:893 formdata.py:1225 formdata.py:1226 formdata.py:1227
#: formdata.py:1228 formdata.py:1229 formdata.py:1230 formdata.py:1231
#: formdata.py:1232 formdata.py:1233 formdata.py:1234 formdef.py:85
@@ -1573,7 +1576,7 @@ msgstr "Utilisateurs"
msgid "Mime types"
msgstr "Types MIME"
-#: admin/settings.py:269 admin/workflows.py:343 backoffice/management.py:1453
+#: admin/settings.py:269 admin/workflows.py:343 backoffice/management.py:1454
msgid "Save"
msgstr "Enregistrer"
@@ -1872,11 +1875,11 @@ msgstr "Modèles de courriel"
msgid "Exporting site settings"
msgstr "Exporter des paramètres du site"
-#: admin/settings.py:973 backoffice/management.py:1986
+#: admin/settings.py:973 backoffice/management.py:1987
msgid "Exporting"
msgstr "Export"
-#: admin/settings.py:990 backoffice/management.py:2003
+#: admin/settings.py:990 backoffice/management.py:2004
msgid "Download Export"
msgstr "Télécharger l’export"
@@ -1934,7 +1937,7 @@ msgstr "appels webservices"
msgid "Error:"
msgstr "Erreur :"
-#: admin/settings.py:1057 qommon/publisher.py:1038
+#: admin/settings.py:1057 qommon/publisher.py:1044
msgid "Site Name"
msgstr "Nom du site"
@@ -1996,7 +1999,7 @@ msgid "Database Name"
msgstr "Nom de la base de données"
#: admin/settings.py:1200 admin/users.py:120 backoffice/management.py:1187
-#: backoffice/management.py:1618 qommon/admin/logger.py:60
+#: backoffice/management.py:1619 qommon/admin/logger.py:60
#: qommon/admin/logger.py:183 users.py:208 users.py:259 users.py:260
msgid "User"
msgstr "Utilisateur"
@@ -2005,7 +2008,7 @@ msgstr "Utilisateur"
msgid "User name used to authenticate"
msgstr "Nom de l’utilisateur pour l’authentification"
-#: admin/settings.py:1204 fields.py:2569 qommon/ident/password.py:211
+#: admin/settings.py:1204 fields.py:2577 qommon/ident/password.py:211
#: qommon/ident/password.py:512 qommon/ident/password.py:868
#: qommon/ident/password.py:1040 qommon/sms.py:32 qommon/sms.py:102
msgid "Password"
@@ -2063,7 +2066,7 @@ msgstr "Marqué comme supprimé le %(date)s."
msgid "Profile"
msgstr "Profil"
-#: admin/users.py:163 fields.py:2696 forms/common.py:495
+#: admin/users.py:163 fields.py:2704 forms/common.py:495
#: wf/export_to_model.py:585
msgid "Not set"
msgstr "Non renseigné"
@@ -2139,8 +2142,8 @@ msgid "New User"
msgstr "Nouvel utilisateur"
#: admin/users.py:444 admin/users.py:450 backoffice/management.py:348
-#: backoffice/management.py:354 backoffice/management.py:1398
-#: backoffice/management.py:1404
+#: backoffice/management.py:354 backoffice/management.py:1399
+#: backoffice/management.py:1405
msgid "Search"
msgstr "Rechercher"
@@ -2407,7 +2410,7 @@ msgstr "Ce choix est prioritaire par rapport au nom de variable"
msgid "Variable"
msgstr "Variable"
-#: admin/workflows.py:892 admin/workflows.py:935 backoffice/management.py:3048
+#: admin/workflows.py:892 admin/workflows.py:935 backoffice/management.py:3049
#: qommon/substitution.py:133
msgid "Variables"
msgstr "Variables"
@@ -2425,7 +2428,7 @@ msgstr "Données de traitement"
msgid "There are not yet any backoffice fields."
msgstr "Il n’y a pas encore de donnée de traitement."
-#: admin/workflows.py:965 backoffice/management.py:3101
+#: admin/workflows.py:965 backoffice/management.py:3102
msgid "Functions"
msgstr "Fonctions"
@@ -2808,8 +2811,8 @@ msgstr "Importer des fiches depuis un fichier CSV"
msgid "will be ignored - type %s not supported"
msgstr "sera ignoré - type %s pas pris en charge"
-#: backoffice/data_management.py:152 backoffice/management.py:1346
-#: backoffice/management.py:3187 fields.py:969 fields.py:988 fields.py:1015
+#: backoffice/data_management.py:152 backoffice/management.py:1347
+#: backoffice/management.py:3188 fields.py:969 fields.py:988 fields.py:1015
#: formdata.py:671 workflows.py:1904
msgid "Yes"
msgstr "Oui"
@@ -2943,25 +2946,25 @@ msgid "Look up"
msgstr "Recherche"
#: backoffice/management.py:602 backoffice/management.py:891
-#: backoffice/management.py:995 backoffice/management.py:1559 formdef.py:1315
+#: backoffice/management.py:995 backoffice/management.py:1560 formdef.py:1315
#: forms/common.py:446 workflows.py:1136 workflows.py:1142 workflows.py:2206
msgid "Status"
msgstr "Statut"
-#: backoffice/management.py:604 backoffice/management.py:1253
+#: backoffice/management.py:604 backoffice/management.py:1254
msgid "Waiting for an action"
msgstr "En attente de votre part"
-#: backoffice/management.py:605 backoffice/management.py:1255
+#: backoffice/management.py:605 backoffice/management.py:1256
msgid "formdata|Open"
msgstr "formdata|En attente"
-#: backoffice/management.py:606 backoffice/management.py:1256
-#: backoffice/management.py:2371
+#: backoffice/management.py:606 backoffice/management.py:1257
+#: backoffice/management.py:2372
msgid "Done"
msgstr "Terminé"
-#: backoffice/management.py:607 backoffice/management.py:1254
+#: backoffice/management.py:607 backoffice/management.py:1255
msgid "All"
msgstr "Tous"
@@ -2978,8 +2981,8 @@ msgid "categories|All"
msgstr "categories|Toutes"
#: backoffice/management.py:625 backoffice/management.py:885
-#: backoffice/management.py:1535 backoffice/management.py:2745
-#: backoffice/submission.py:176
+#: backoffice/management.py:1536 backoffice/management.py:2746
+#: backoffice/submission.py:195
msgid "Channel"
msgstr "Canal"
@@ -2987,7 +2990,7 @@ msgstr "Canal"
msgid "channel|All"
msgstr "channel|Tous"
-#: backoffice/management.py:648 backoffice/management.py:2397
+#: backoffice/management.py:648 backoffice/management.py:2398
msgid "Filters"
msgstr "Critères"
@@ -3041,11 +3044,11 @@ msgstr[1] "%(total)s éléments"
msgid "Reference"
msgstr "Référence"
-#: backoffice/management.py:888 backoffice/management.py:1538
+#: backoffice/management.py:888 backoffice/management.py:1539
msgid "Created"
msgstr "Date de création"
-#: backoffice/management.py:889 backoffice/management.py:1539
+#: backoffice/management.py:889 backoffice/management.py:1540
msgid "Last Modified"
msgstr "Dernière modification"
@@ -3078,8 +3081,8 @@ msgstr "Export vers Excel"
msgid "Plot on a Map"
msgstr "Rendu sur une carte"
-#: backoffice/management.py:1078 backoffice/management.py:2354
-#: backoffice/management.py:2452
+#: backoffice/management.py:1078 backoffice/management.py:2355
+#: backoffice/management.py:2453
msgid "Statistics"
msgstr "Statistiques"
@@ -3087,89 +3090,89 @@ msgstr "Statistiques"
msgid "Custom Views"
msgstr "Vues personnalisées"
-#: backoffice/management.py:1185 backoffice/management.py:1614
+#: backoffice/management.py:1185 backoffice/management.py:1615
msgid "Start"
msgstr "Début"
-#: backoffice/management.py:1186 backoffice/management.py:1615
+#: backoffice/management.py:1186 backoffice/management.py:1616
msgid "End"
msgstr "Fin"
-#: backoffice/management.py:1188 backoffice/management.py:1619
+#: backoffice/management.py:1188 backoffice/management.py:1620
msgid "Submission Agent"
msgstr "Agent à la saisie"
-#: backoffice/management.py:1224
+#: backoffice/management.py:1225
msgid "Current view"
msgstr "Vue actuelle"
-#: backoffice/management.py:1226
+#: backoffice/management.py:1227
msgid "filters"
msgstr "critères"
-#: backoffice/management.py:1229
+#: backoffice/management.py:1230
msgid "Columns Settings"
msgstr "Paramètrage des colonnes"
-#: backoffice/management.py:1229
+#: backoffice/management.py:1230
msgid "columns"
msgstr "colonnes"
-#: backoffice/management.py:1231
+#: backoffice/management.py:1232
msgid "Marker Settings"
msgstr "Paramètrage des marqueurs"
-#: backoffice/management.py:1231
+#: backoffice/management.py:1232
msgid "markers"
msgstr "marqueurs"
-#: backoffice/management.py:1249
+#: backoffice/management.py:1250
msgid "Status to display"
msgstr "Statuts à afficher"
-#: backoffice/management.py:1346 backoffice/management.py:3187 fields.py:971
+#: backoffice/management.py:1347 backoffice/management.py:3188 fields.py:971
#: fields.py:1018 formdata.py:671 workflows.py:1904
msgid "No"
msgstr "Non"
-#: backoffice/management.py:1408 backoffice/management.py:2345
+#: backoffice/management.py:1409 backoffice/management.py:2346
msgid "Refresh"
msgstr "Rafraîchir"
-#: backoffice/management.py:1466
+#: backoffice/management.py:1467
msgid "Visibility"
msgstr "Visibilité"
-#: backoffice/management.py:1469
+#: backoffice/management.py:1470
msgid "to me only"
msgstr "par moi uniquement"
-#: backoffice/management.py:1470
+#: backoffice/management.py:1471
msgid "to any users"
msgstr "par tout le monde"
-#: backoffice/management.py:1474
+#: backoffice/management.py:1475
msgid "Update existing view settings"
msgstr "Mettre à jour les paramètres"
-#: backoffice/management.py:1475
+#: backoffice/management.py:1476
msgid "Save View"
msgstr "Enregistrer la vue"
-#: backoffice/management.py:1487
+#: backoffice/management.py:1488
msgid "Missing title."
msgstr "Titre manquant."
-#: backoffice/management.py:1493
+#: backoffice/management.py:1494
msgid "Views must have at least one column."
msgstr "Les vues doivent avoir au moins une colonne."
-#: backoffice/management.py:1515
+#: backoffice/management.py:1516
#, python-format
msgid "You are about to remove the \"%s\" custom view."
msgstr "Vous allez supprimer la vue personnalisée « %s »."
-#: backoffice/management.py:1518
+#: backoffice/management.py:1519
msgid ""
"Beware this view is available to all users, and will thus be removed for "
"everyone."
@@ -3177,116 +3180,116 @@ msgstr ""
"Attention, cette vue est partagée avec tous les utilisateurs et sera donc "
"supprimée pour tout le monde."
-#: backoffice/management.py:1525
+#: backoffice/management.py:1526
msgid "Delete Custom View"
msgstr "Supprimer la vue personnalisée"
-#: backoffice/management.py:1533 fields.py:114
+#: backoffice/management.py:1534 fields.py:114
msgid "Number"
msgstr "Numéro"
-#: backoffice/management.py:1537
+#: backoffice/management.py:1538
msgid "Submission By"
msgstr "Saisie par"
-#: backoffice/management.py:1540
+#: backoffice/management.py:1541
msgid "User Label"
msgstr "Nom de l’usager"
-#: backoffice/management.py:1560
+#: backoffice/management.py:1561
msgid "Anonymised"
msgstr "Anonymisé"
-#: backoffice/management.py:1616
+#: backoffice/management.py:1617
msgid "Start (modification time)"
msgstr "Début (date de modification)"
-#: backoffice/management.py:1617
+#: backoffice/management.py:1618
msgid "End (modification time)"
msgstr "Fin (date de modification)"
-#: backoffice/management.py:1825
+#: backoffice/management.py:1826
msgid "Listing"
msgstr "Listing"
-#: backoffice/management.py:1874
+#: backoffice/management.py:1875
#, python-format
msgid "Executing task \"%s\" on forms"
msgstr "Exécution de la tâche «%s» sur les formulaires"
-#: backoffice/management.py:1886
+#: backoffice/management.py:1887
msgid "Executing Task"
msgstr "Exécution de la tâche"
-#: backoffice/management.py:1902 forms/common.py:608
+#: backoffice/management.py:1903 forms/common.py:608
#: templates/wcs/backoffice/card-data-import-form.html:35
msgid "Back to Listing"
msgstr "Retour au listing"
-#: backoffice/management.py:1963
+#: backoffice/management.py:1964
msgid "Exporting forms in CSV"
msgstr "Export des formulaires en CSV"
-#: backoffice/management.py:2073
+#: backoffice/management.py:2074
msgid "Exporting forms in Excel format"
msgstr "Export des formulaires au format Excel"
-#: backoffice/management.py:2137
+#: backoffice/management.py:2138
msgid "Exporting forms in Open Document format"
msgstr "Export des formulaires au format Open Document"
-#: backoffice/management.py:2317 backoffice/management.py:2336 fields.py:2380
+#: backoffice/management.py:2318 backoffice/management.py:2337 fields.py:2388
msgid "Map"
msgstr "Carte"
-#: backoffice/management.py:2367 backoffice/management.py:2371
-#: backoffice/management.py:2374
+#: backoffice/management.py:2368 backoffice/management.py:2372
+#: backoffice/management.py:2375
#, python-format
msgid "Status: %s"
msgstr "Statut : %s"
-#: backoffice/management.py:2367
+#: backoffice/management.py:2368
msgid "Pending"
msgstr "En attente"
-#: backoffice/management.py:2409
+#: backoffice/management.py:2410
msgid "Total number of records:"
msgstr "Nombre total d’enregistrements :"
-#: backoffice/management.py:2501
+#: backoffice/management.py:2502
msgid "Resolution time"
msgstr "Durée pour la résolution"
-#: backoffice/management.py:2518
+#: backoffice/management.py:2519
#, python-format
msgid "To Status \"%s\""
msgstr "Vers le statut « %s »"
-#: backoffice/management.py:2521
+#: backoffice/management.py:2522
msgid "Minimum Time:"
msgstr "Temps minimum :"
-#: backoffice/management.py:2522
+#: backoffice/management.py:2523
msgid "Maximum Time:"
msgstr "Temps maximum :"
-#: backoffice/management.py:2523
+#: backoffice/management.py:2524
msgid "Range:"
msgstr "Étendue :"
-#: backoffice/management.py:2525
+#: backoffice/management.py:2526
msgid "Mean:"
msgstr "Moyenne :"
-#: backoffice/management.py:2531
+#: backoffice/management.py:2532
msgid "Median:"
msgstr "Médiane :"
-#: backoffice/management.py:2546
+#: backoffice/management.py:2547
msgid "Standard Deviation:"
msgstr "Écart type :"
-#: backoffice/management.py:2562
+#: backoffice/management.py:2563
msgid ""
"A missing or invalid custom view was referenced; you have been automatically "
"redirected."
@@ -3294,12 +3297,12 @@ msgstr ""
"Une vue personnalisée manquante ou invalide était référencée; vous avez été "
"automatiquement redirigé."
-#: backoffice/management.py:2586
+#: backoffice/management.py:2587
#, python-format
msgid "The form has been recorded on %(date)s with the number %(number)s."
msgstr "Le formulaire a été enregistré le %(date)s avec le numéro %(number)s."
-#: backoffice/management.py:2588
+#: backoffice/management.py:2589
#, python-format
msgid ""
"The form has been recorded on %(date)s with the number %(number)s by "
@@ -3308,7 +3311,7 @@ msgstr ""
"Le formulaire a été enregistré le %(date)s avec le numéro %(number)s par "
"%(agent)s."
-#: backoffice/management.py:2609
+#: backoffice/management.py:2610
msgid ""
"This form has been accessed via its tracking code, it is therefore displayed "
"like you were also its owner."
@@ -3316,217 +3319,217 @@ msgstr ""
"Vous avez accédé à ce formulaire via son code de suivi, vous le voyez donc "
"aussi comme l’usager."
-#: backoffice/management.py:2660
+#: backoffice/management.py:2661
msgid "General Information"
msgstr "Informations générales"
-#: backoffice/management.py:2689
+#: backoffice/management.py:2690
msgid "This status is not visible to users."
msgstr "Ce statut est caché au demandeur."
-#: backoffice/management.py:2700
+#: backoffice/management.py:2701
msgid "Criticality Level:"
msgstr "Criticité :"
-#: backoffice/management.py:2704
+#: backoffice/management.py:2705
#, python-format
msgid "This form has been anonymised on %(date)s."
msgstr "Ce formulaire a été anonymisé le %(date)s."
-#: backoffice/management.py:2724
+#: backoffice/management.py:2725
msgid "Download all files as .zip"
msgstr "Télécharger les fichiers joints"
-#: backoffice/management.py:2732
+#: backoffice/management.py:2733
msgid "Original form"
msgstr "Formulaire d’origine"
-#: backoffice/management.py:2737 backoffice/management.py:3112
+#: backoffice/management.py:2738 backoffice/management.py:3113
msgid "(deleted)"
msgstr "(supprimé)"
-#: backoffice/management.py:2751
+#: backoffice/management.py:2752
msgid "Open"
msgstr "Ouvrir"
-#: backoffice/management.py:2753
+#: backoffice/management.py:2754
msgid "Comments"
msgstr "Commentaire"
-#: backoffice/management.py:2762
+#: backoffice/management.py:2763
msgid "Associated User"
msgstr "Usager associé"
-#: backoffice/management.py:2797 backoffice/management.py:3015
-#: backoffice/management.py:3019
+#: backoffice/management.py:2798 backoffice/management.py:3016
+#: backoffice/management.py:3020
msgid "Data Inspector"
msgstr "Inspection des données"
-#: backoffice/management.py:2844
+#: backoffice/management.py:2845
msgid "User Pending Forms"
msgstr "Formulaires de cet usager en attente"
-#: backoffice/management.py:2901
+#: backoffice/management.py:2902
msgid "Condition (Django)"
msgstr "Condition (Django)"
-#: backoffice/management.py:2902
+#: backoffice/management.py:2903
msgid "Condition (Python)"
msgstr "Condition (Python)"
-#: backoffice/management.py:2904
+#: backoffice/management.py:2905
msgid "HTML Template (WYSIWYG)"
msgstr "Gabarit HTML (WYSIWYG)"
-#: backoffice/management.py:2929
+#: backoffice/management.py:2930
msgid "Evaluate"
msgstr "Évaluer"
-#: backoffice/management.py:2948 conditions.py:60
+#: backoffice/management.py:2949 conditions.py:60
msgid "Failed to evaluate condition"
msgstr "Erreur à l’évaluation de la condition"
-#: backoffice/management.py:2958
+#: backoffice/management.py:2959
msgid "Condition result:"
msgstr "Résultat de la condition :"
-#: backoffice/management.py:2960 fields.py:988
+#: backoffice/management.py:2961 fields.py:988
msgid "True"
msgstr "Vrai"
-#: backoffice/management.py:2960
+#: backoffice/management.py:2961
msgid "False"
msgstr "Faux"
-#: backoffice/management.py:2964
+#: backoffice/management.py:2965
msgid "Python actual result is"
msgstr "Le résultat Python en retour est"
-#: backoffice/management.py:2973
+#: backoffice/management.py:2974
msgid "Failed to evaluate template"
msgstr "Erreur à l’évaluation du gabarit"
-#: backoffice/management.py:2978 backoffice/management.py:3001
+#: backoffice/management.py:2979 backoffice/management.py:3002
msgid "Template rendering:"
msgstr "Rendu du gabarit :"
-#: backoffice/management.py:2983 backoffice/management.py:3005
+#: backoffice/management.py:2984 backoffice/management.py:3006
msgid "HTML Source:"
msgstr "Source HTML :"
-#: backoffice/management.py:2995
+#: backoffice/management.py:2996
msgid "Failed to evaluate HTML template"
msgstr "Erreur à l’évaluation du gabarit HTML"
-#: backoffice/management.py:3024
+#: backoffice/management.py:3025
msgid "View Form"
msgstr "Voir le formulaire"
-#: backoffice/management.py:3028
+#: backoffice/management.py:3029
msgid "View Card"
msgstr "Voir la fiche"
-#: backoffice/management.py:3031
+#: backoffice/management.py:3032
msgid "View Workflow"
msgstr "Voir le workflow"
-#: backoffice/management.py:3038
+#: backoffice/management.py:3039
msgid "Test tools"
msgstr "Outils de test"
-#: backoffice/management.py:3082
+#: backoffice/management.py:3083
msgid "variables from parent's request"
msgstr "variables de la demande parente"
-#: backoffice/management.py:3114
+#: backoffice/management.py:3115
msgid "unset"
msgstr "non définie"
-#: backoffice/management.py:3122
+#: backoffice/management.py:3123
msgid "Markers Stack"
msgstr "Pile des marqueurs"
-#: backoffice/management.py:3215 qommon/misc.py:297
+#: backoffice/management.py:3216 qommon/misc.py:297
msgid "Sunday"
msgstr "dimanche"
-#: backoffice/management.py:3215 qommon/misc.py:296
+#: backoffice/management.py:3216 qommon/misc.py:296
msgid "Monday"
msgstr "lundi"
-#: backoffice/management.py:3215 qommon/misc.py:296
+#: backoffice/management.py:3216 qommon/misc.py:296
msgid "Tuesday"
msgstr "mardi"
-#: backoffice/management.py:3216 qommon/misc.py:296
+#: backoffice/management.py:3217 qommon/misc.py:296
msgid "Wednesday"
msgstr "mercredi"
-#: backoffice/management.py:3216 qommon/misc.py:297
+#: backoffice/management.py:3217 qommon/misc.py:297
msgid "Thursday"
msgstr "jeudi"
-#: backoffice/management.py:3216 qommon/misc.py:297
+#: backoffice/management.py:3217 qommon/misc.py:297
msgid "Friday"
msgstr "vendredi"
-#: backoffice/management.py:3216 qommon/misc.py:297
+#: backoffice/management.py:3217 qommon/misc.py:297
msgid "Saturday"
msgstr "samedi"
-#: backoffice/management.py:3238
+#: backoffice/management.py:3239
msgid "Submissions by year"
msgstr "Transmissions par année"
-#: backoffice/management.py:3241
+#: backoffice/management.py:3242
msgid "Submissions by month"
msgstr "Transmissions par mois"
-#: backoffice/management.py:3243
+#: backoffice/management.py:3244
msgid "Submissions by weekday"
msgstr "Transmissions par jour de la semaine"
-#: backoffice/management.py:3245
+#: backoffice/management.py:3246
msgid "Submissions by hour"
msgstr "Transmissions par heure"
-#: backoffice/management.py:3334
+#: backoffice/management.py:3335
#, python-format
msgid "%d day(s)"
msgstr "%d jour(s)"
-#: backoffice/management.py:3336
+#: backoffice/management.py:3337
#, python-format
msgid "%d hour(s)"
msgstr "%d heures(s)"
-#: backoffice/management.py:3338
+#: backoffice/management.py:3339
#, python-format
msgid "%d minute(s)"
msgstr "%d minute(s)"
-#: backoffice/management.py:3341
+#: backoffice/management.py:3342
#, python-format
msgid "%(days)d day(s) and %(hours)d hour(s)"
msgstr "%(days)d jour(s) et %(hours)d heure(s)"
-#: backoffice/management.py:3344
+#: backoffice/management.py:3345
#, python-format
msgid "%(hours)d hour(s) and %(minutes)d minute(s)"
msgstr "%(hours)d heure(s) et %(minutes)d minute(s)"
-#: backoffice/management.py:3347
+#: backoffice/management.py:3348
#, python-format
msgid "%(minutes)d minute(s) and %(seconds)d seconds"
msgstr "%(minutes)d minute(s) et %(seconds)d secondes"
-#: backoffice/management.py:3349
+#: backoffice/management.py:3350
#, python-format
msgid "%d seconds"
msgstr "%d secondes"
-#: backoffice/root.py:61 backoffice/submission.py:305
-#: backoffice/submission.py:306 backoffice/submission.py:423
+#: backoffice/root.py:61 backoffice/submission.py:324
+#: backoffice/submission.py:325 backoffice/submission.py:442
msgid "Submission"
msgstr "Saisie"
@@ -3543,7 +3546,7 @@ msgstr "Fabrique de formulaires"
msgid "Workflows Workshop"
msgstr "Fabrique de workflows"
-#: backoffice/root.py:135 forms/root.py:1513 qommon/backoffice/root.py:41
+#: backoffice/root.py:135 forms/root.py:1535 qommon/backoffice/root.py:41
msgid "Back Office"
msgstr "Backoffice"
@@ -3591,57 +3594,57 @@ msgctxt "studio"
msgid "Workflows"
msgstr "Workflows"
-#: backoffice/submission.py:56 qommon/admin/menu.py:104
+#: backoffice/submission.py:57 qommon/admin/menu.py:104
msgid "Remove"
msgstr "Supprimer"
-#: backoffice/submission.py:67
+#: backoffice/submission.py:68
msgid "Deleting Form"
msgstr "Suppression du formulaire"
-#: backoffice/submission.py:82 backoffice/submission.py:222 forms/root.py:886
-#: forms/root.py:888 forms/root.py:975
+#: backoffice/submission.py:83 backoffice/submission.py:241 forms/root.py:909
+#: forms/root.py:911 forms/root.py:998
msgid "This form has already been submitted."
msgstr "Ce formulaire a déjà été enregistré."
-#: backoffice/submission.py:212
+#: backoffice/submission.py:231
msgid "Delete this form"
msgstr "Supprimer cette demande"
-#: backoffice/submission.py:335
+#: backoffice/submission.py:354
msgid "New submission"
msgstr "Nouvelle demande"
-#: backoffice/submission.py:336
+#: backoffice/submission.py:355
msgid "Running submission"
msgstr "Saisie entamée"
-#: backoffice/submission.py:337
+#: backoffice/submission.py:356
msgid "Submission to complete"
msgstr "Prédemande"
-#: backoffice/submission.py:392
+#: backoffice/submission.py:411
#, python-format
msgid "#%(id)s, %(time)s"
msgstr "n°%(id)s, %(time)s"
-#: blocks.py:147 formdef.py:1056
+#: blocks.py:151 formdef.py:1056
msgid "Unknown datasources"
msgstr "Sources de données inconnues"
-#: blocks.py:157 formdef.py:1075 workflows.py:610
+#: blocks.py:161 formdef.py:1075 workflows.py:610
msgid "Missing name"
msgstr "Nom manquant"
-#: blocks.py:165 formdef.py:1083
+#: blocks.py:169 formdef.py:1083
msgid "Unexpected root node"
msgstr "Élément racine inattendu"
-#: blocks.py:180 formdef.py:863 formdef.py:1104
+#: blocks.py:184 formdef.py:863 formdef.py:1104
msgid "Unknown field type"
msgstr "Type de champ inconnu"
-#: blocks.py:273
+#: blocks.py:278
msgid "Add another"
msgstr "Ajouter un autre"
@@ -3678,8 +3681,8 @@ msgid "Delete Card"
msgstr "Supprimer la fiche"
#: categories.py:113 categories.py:114 categories.py:115
-#: qommon/publisher.py:1038 qommon/publisher.py:1039 qommon/publisher.py:1040
-#: qommon/publisher.py:1041 qommon/publisher.py:1042 qommon/publisher.py:1043
+#: qommon/publisher.py:1044 qommon/publisher.py:1045 qommon/publisher.py:1046
+#: qommon/publisher.py:1047 qommon/publisher.py:1048 qommon/publisher.py:1049
msgid "General"
msgstr "Général"
@@ -3712,19 +3715,19 @@ msgstr "URL du JSON"
msgid "JSONP URL"
msgstr "URL du JSONP"
-#: data_sources.py:75
+#: data_sources.py:76
msgid "GeoJSON URL"
msgstr "URL du GeoJSON"
-#: data_sources.py:474 wf/wscall.py:218
+#: data_sources.py:484 wf/wscall.py:218
msgid "JSON"
msgstr "JSON"
-#: data_sources.py:475
+#: data_sources.py:485
msgid "JSONP"
msgstr "JSONP"
-#: data_sources.py:476
+#: data_sources.py:486
msgid "GeoJSON"
msgstr "GeoJSON"
@@ -3760,7 +3763,7 @@ msgstr "Code postal"
msgid "City"
msgstr "Ville"
-#: fields.py:119 fields.py:2397
+#: fields.py:119 fields.py:2405
msgid "Country"
msgstr "Pays"
@@ -3773,11 +3776,11 @@ msgstr "Verrouillé"
msgid "invalid expression: %s"
msgstr "expression invalide : %s"
-#: fields.py:561 fields.py:680 fields.py:745 fields.py:2071 fields.py:2261
+#: fields.py:561 fields.py:680 fields.py:745 fields.py:2079 fields.py:2269
msgid "Validation Page"
msgstr "Page de récapitulatif"
-#: fields.py:562 fields.py:681 fields.py:746 fields.py:2072 fields.py:2262
+#: fields.py:562 fields.py:681 fields.py:746 fields.py:2080 fields.py:2270
msgid "Summary Page"
msgstr "Résumé de la demande"
@@ -3809,7 +3812,7 @@ msgstr "Classes supplémentaires pour les styles CSS"
msgid "Prefill"
msgstr "Préremplir"
-#: fields.py:590 fields.py:688 fields.py:759 fields.py:2018
+#: fields.py:590 fields.py:688 fields.py:759 fields.py:2026
msgid "Display Condition"
msgstr "Condition d’affichage"
@@ -3947,239 +3950,239 @@ msgid ""
msgstr ""
"Cette option n’est utile que combinée à une des précédentes cases à cocher."
-#: fields.py:1441 fields.py:1629
+#: fields.py:1441 fields.py:1637
msgid "List"
msgstr "Liste"
-#: fields.py:1627 fields.py:1746
+#: fields.py:1635 fields.py:1754
msgid "Display in default filters"
msgstr "Afficher dans les filtres par défaut"
-#: fields.py:1630
+#: fields.py:1638
msgid "Radio buttons"
msgstr "Boutons radio"
-#: fields.py:1631
+#: fields.py:1639
msgid "Autocomplete"
msgstr "Autocomplétion"
-#: fields.py:1634
+#: fields.py:1642
msgid "Display Mode"
msgstr "Mode d’affichage"
-#: fields.py:1637 fields.py:1748 fields.py:2216 fields.py:2505
+#: fields.py:1645 fields.py:1756 fields.py:2224 fields.py:2513
msgid "Items"
msgstr "Éléments"
-#: fields.py:1640 fields.py:1751 fields.py:2219 fields.py:2508
+#: fields.py:1648 fields.py:1759 fields.py:2227 fields.py:2516
msgid "Add item"
msgstr "Ajouter un élément"
-#: fields.py:1644 fields.py:1758
+#: fields.py:1652 fields.py:1766
msgid "This will get the available items from an external source."
msgstr "Cela ira prendre les éléments disponibles depuis la source externe."
-#: fields.py:1648 fields.py:1762
+#: fields.py:1656 fields.py:1770
msgid "Display disabled items"
msgstr "Afficher les éléments désactivés"
-#: fields.py:1662 fields.py:1776 fields.py:2236
+#: fields.py:1670 fields.py:1784 fields.py:2244
msgid "Duplicated Items"
msgstr "Éléments en double"
-#: fields.py:1705
+#: fields.py:1713
msgid "Multiple choice list"
msgstr "Liste à choix multiple"
-#: fields.py:1752
+#: fields.py:1760
msgid "Maximum number of choices"
msgstr "Nombre maximal de choix"
-#: fields.py:1886
+#: fields.py:1894
msgid "Condition"
msgstr "Condition"
-#: fields.py:1888
+#: fields.py:1896
msgid "Error message if condition is not met"
msgstr "Message d’erreur si condition non satisfaite"
-#: fields.py:1912
+#: fields.py:1920
msgid "Both condition and error message are required."
msgstr "La condition et le message d’erreur sont requis."
-#: fields.py:2021
+#: fields.py:2029
msgid "Post Conditions"
msgstr "Conditions de sortie"
-#: fields.py:2054
+#: fields.py:2062
msgid "Table"
msgstr "Tableau"
-#: fields.py:2080
+#: fields.py:2088
msgid "Rows"
msgstr "Lignes"
-#: fields.py:2083 fields.py:2258 qommon/form.py:1505 qommon/form.py:1598
+#: fields.py:2091 fields.py:2266 qommon/form.py:1509 qommon/form.py:1602
msgid "Add row"
msgstr "Ajouter une ligne"
-#: fields.py:2084 fields.py:2270
+#: fields.py:2092 fields.py:2278
msgid "Columns"
msgstr "Colonnes"
-#: fields.py:2087 fields.py:2273
+#: fields.py:2095 fields.py:2281
msgid "Add column"
msgstr "Ajouter une colonne"
-#: fields.py:2204
+#: fields.py:2212
msgid "Table of Lists"
msgstr "Tableau de listes"
-#: fields.py:2245
+#: fields.py:2253
msgid "Table with rows"
msgstr "Tableau de longueur libre"
-#: fields.py:2274
+#: fields.py:2282
msgid "Total Row"
msgstr "Ajouter une ligne de total"
-#: fields.py:2372
+#: fields.py:2380
msgid "unimplemented"
msgstr "non-programmé"
-#: fields.py:2396
+#: fields.py:2404
msgid "Whole world"
msgstr "Monde entier"
-#: fields.py:2398
+#: fields.py:2406
msgid "Wide area"
msgstr "Large étendue"
-#: fields.py:2399
+#: fields.py:2407
msgid "Area"
msgstr "Région"
-#: fields.py:2400
+#: fields.py:2408
msgid "Town"
msgstr "Ville"
-#: fields.py:2401
+#: fields.py:2409
msgid "Small road"
msgstr "Petite route"
-#: fields.py:2402
+#: fields.py:2410
msgid "Neighbourhood"
msgstr "Quartier"
-#: fields.py:2403
+#: fields.py:2411
msgid "Ant"
msgstr "Fourmi"
-#: fields.py:2404
+#: fields.py:2412
msgid "Initial zoom level"
msgstr "Niveau de zoom initial"
-#: fields.py:2406
+#: fields.py:2414
msgid "Minimal zoom level"
msgstr "Niveau de zoom minimal (affichage le plus large)"
-#: fields.py:2408
+#: fields.py:2416
msgid "Maximal zoom level"
msgstr "Niveau de zoom maximal (affichage le plus resserré)"
-#: fields.py:2410
+#: fields.py:2418
msgid "Initial Position"
msgstr "Position initiale"
-#: fields.py:2413
+#: fields.py:2421
msgid "Initialize position using device geolocation"
msgstr "Position initiale selon la géolocalisation de l’appareil"
-#: fields.py:2423
+#: fields.py:2431
msgid "Minimal zoom level cannot be greater than maximal zoom level."
msgstr ""
"Le niveau de zoom mininimal ne doit pas dépasser le niveau de zoom maximal."
-#: fields.py:2427
+#: fields.py:2435
msgid "Initial zoom level must be between minimal and maximal zoom levels."
msgstr ""
"Le niveau de zoom initial doit être compris entre les niveaux minimal et "
"maximal."
-#: fields.py:2488
+#: fields.py:2496
msgid "Ranked Items"
msgstr "Eléments classés"
-#: fields.py:2509
+#: fields.py:2517
msgid "Randomize Items"
msgstr "Mélanger les éléments"
-#: fields.py:2593
+#: fields.py:2601
msgid "Clear text"
msgstr "Texte clair"
-#: fields.py:2594
+#: fields.py:2602
msgid "MD5"
msgstr "MD5"
-#: fields.py:2595
+#: fields.py:2603
msgid "SHA1"
msgstr "SHA1"
-#: fields.py:2597
+#: fields.py:2605
msgid "Storage formats"
msgstr "Formats de stockage"
-#: fields.py:2599
+#: fields.py:2607
msgid "Minimum length"
msgstr "Taille minimale"
-#: fields.py:2601 qommon/ident/password.py:715
+#: fields.py:2609 qommon/ident/password.py:715
msgid "Maximum password length"
msgstr "Taille maximale"
-#: fields.py:2603 qommon/ident/password.py:717
+#: fields.py:2611 qommon/ident/password.py:717
msgid "0 for unlimited length"
msgstr "0 pour ne pas limiter la taille"
-#: fields.py:2605 qommon/ident/password.py:719
+#: fields.py:2613 qommon/ident/password.py:719
msgid "Minimum number of uppercase characters"
msgstr "Nombre minimum de caractères majuscules"
-#: fields.py:2608 qommon/ident/password.py:722
+#: fields.py:2616 qommon/ident/password.py:722
msgid "Minimum number of lowercase characters"
msgstr "Nombre minimum de caractères minuscules"
-#: fields.py:2611 qommon/ident/password.py:725
+#: fields.py:2619 qommon/ident/password.py:725
msgid "Minimum number of digits"
msgstr "Nombre minimum de chiffres"
-#: fields.py:2614 qommon/ident/password.py:728
+#: fields.py:2622 qommon/ident/password.py:728
msgid "Minimum number of special characters"
msgstr "Nombre minimum de caractères spéciaux"
-#: fields.py:2617
+#: fields.py:2625
msgid "Add a password strength indicator"
msgstr "Afficher un indicateur de robustesse du mot de passe"
-#: fields.py:2620
+#: fields.py:2628
msgid "Add a confirmation input"
msgstr "Ajouter un champ de confirmation"
-#: fields.py:2623
+#: fields.py:2631
msgid "Label for confirmation input"
msgstr "Libellé pour le champ de confirmation"
-#: fields.py:2656
+#: fields.py:2664
#, python-format
msgid "Field Block (%s)"
msgstr "Bloc de champ (%s)"
-#: fields.py:2662
+#: fields.py:2670
msgid "Maximum number of items"
msgstr "Nombre maximal d’éléments"
-#: fields.py:2664
+#: fields.py:2672
msgid "Label of \"Add\" button"
msgstr "Libellé du bouton « ajouter »"
@@ -4504,124 +4507,124 @@ msgstr "Envoyer le courriel"
msgid "Keep your tracking code"
msgstr "Conservez votre code de suivi"
-#: forms/root.py:273
+#: forms/root.py:279
msgid "Filling"
msgstr "Édition"
-#: forms/root.py:286
+#: forms/root.py:292
msgid "Validating"
msgstr "Validation"
-#: forms/root.py:341
+#: forms/root.py:347
msgid "Save Changes"
msgstr "Enregistrer les changements"
-#: forms/root.py:345 qommon/admin/menu.py:108
+#: forms/root.py:351 qommon/admin/menu.py:108
msgid "Next"
msgstr "Suivant"
-#: forms/root.py:348 forms/root.py:1302 qommon/admin/menu.py:107
+#: forms/root.py:354 forms/root.py:1324 qommon/admin/menu.py:107
msgid "Previous"
msgstr "Précédent"
-#: forms/root.py:454 forms/root.py:1305
+#: forms/root.py:460 forms/root.py:1327
msgid "Discard"
msgstr "Abandonner"
-#: forms/root.py:458 forms/root.py:1309
+#: forms/root.py:464 forms/root.py:1331
msgid "Save Draft"
msgstr "Sauvegarder en tant que brouillon"
-#: forms/root.py:463
+#: forms/root.py:469
msgid "leave this field blank to prove your humanity"
msgstr "Laissez ce champ vide pour prouver votre humanité"
-#: forms/root.py:502 forms/root.py:1456
+#: forms/root.py:513 forms/root.py:1478
msgid "Tracking code"
msgstr "Code de suivi"
-#: forms/root.py:525
+#: forms/root.py:536
msgid "Discard Draft"
msgstr "Supprimer le brouillon"
-#: forms/root.py:595
+#: forms/root.py:606
msgid "You need a stronger authentication level to fill this form."
msgstr ""
"Vous devez vous connecter avec une authentification plus forte pour accéder "
"à ce formulaire."
-#: forms/root.py:600
+#: forms/root.py:611
#, python-format
msgid "Login with %s"
msgstr "Connexion avec %s"
-#: forms/root.py:669
+#: forms/root.py:690
msgid "Sorry, your session have been lost."
msgstr "Désolé, votre session a été perdue."
-#: forms/root.py:856
+#: forms/root.py:879
msgid "Honey pot should be left untouched."
msgstr "Le pot de miel ne doit pas être touché."
-#: forms/root.py:1458
+#: forms/root.py:1480
msgid "ex: RPQDFVCD"
msgstr "ex : RPQDFVCD"
-#: forms/root.py:1459
+#: forms/root.py:1481
msgid "Load"
msgstr "Valider"
-#: forms/root.py:1516 forms/root.py:1525 root.py:175
+#: forms/root.py:1538 forms/root.py:1547 root.py:175
msgid "Register"
msgstr "S’inscrire"
-#: forms/root.py:1518
+#: forms/root.py:1540
msgid "Logout"
msgstr "Déconnexion"
-#: forms/root.py:1522 qommon/ident/idp.py:137 qommon/ident/password.py:218
+#: forms/root.py:1544 qommon/ident/idp.py:137 qommon/ident/password.py:218
#: qommon/ident/password.py:219 root.py:124
msgid "Login"
msgstr "S’identifier"
-#: forms/root.py:1534
+#: forms/root.py:1556
msgid "Your Current Drafts"
msgstr "Vos brouillons en cours"
-#: forms/root.py:1552
+#: forms/root.py:1574
#, python-format
msgid "Your forms with status \"%s\""
msgstr "Vos formulaires avec le statut « %s »"
-#: forms/root.py:1607
+#: forms/root.py:1629
msgid "already completed"
msgstr "déjà complétée"
-#: forms/root.py:1608
+#: forms/root.py:1630
msgid "review"
msgstr "relire"
-#: forms/root.py:1624
+#: forms/root.py:1646
msgid "authentication required"
msgstr "identification requise"
-#: forms/root.py:1662
+#: forms/root.py:1684
msgid "All forms"
msgstr "Tous les formulaires"
-#: forms/root.py:1695
+#: forms/root.py:1717
msgid "Welcome text on home page for logged users"
msgstr "Texte de bienvenue pour les utilisateurs identifiés"
-#: forms/root.py:1698
+#: forms/root.py:1720
msgid "Welcome text on home page for unlogged users"
msgstr "Texte de bienvenue pour les utilisateurs non-identifiés"
-#: forms/root.py:1701
+#: forms/root.py:1723
msgid "Explanation text before the CAPTCHA"
msgstr "Texte d’explication avant le CAPTCHA"
-#: forms/root.py:1702
+#: forms/root.py:1724
msgid ""
"Verification
\n"
"\n"
@@ -4636,11 +4639,11 @@ msgstr ""
"Il s’agit de prouver que vous êtes un humain et non un robot.\n"
"
"
-#: forms/root.py:1710
+#: forms/root.py:1732
msgid "Message when a form has been recorded"
msgstr "Message quand un formulaire a été enregistré"
-#: forms/root.py:1712
+#: forms/root.py:1734
msgid ""
"The form has been recorded on {{ form_receipt_datetime }} with the number "
"{{ form_number }}."
@@ -4648,7 +4651,7 @@ msgstr ""
"Le formulaire a été enregistré le {{ form_receipt_datetime }} avec le numéro "
"{{ form_number }}."
-#: forms/root.py:1715
+#: forms/root.py:1737
msgid ""
"Message when a form has been recorded, and the form is set to only allow one "
"per user"
@@ -4656,39 +4659,39 @@ msgstr ""
"Message quand un formulaire a été enregistré, et que le formulaire est créé "
"pour n’autoriser qu’un seul exemplaire par utilisateur"
-#: forms/root.py:1717
+#: forms/root.py:1739
msgid "The form has been recorded on {{ form_receipt_datetime }}."
msgstr "Le formulaire a été enregistré le {{ form_receipt_datetime }}."
-#: forms/root.py:1720
+#: forms/root.py:1742
msgid "Message when a form is displayed before validation"
msgstr "Message quand un formulaire est affiché pour validation"
-#: forms/root.py:1722
+#: forms/root.py:1744
msgid "Check values then click submit."
msgstr "Vérifiez le contenu du formulaire puis cliquez sur « Valider »."
-#: forms/root.py:1725
+#: forms/root.py:1747
msgid "Message in tracking code popup dialog"
msgstr "Message dans la fenêtre popup du code de suivi"
-#: forms/root.py:1727
+#: forms/root.py:1749
msgid "You can get a reminder of the tracking code by email."
msgstr "Obtenir un rappel du code de suivi par courriel."
-#: forms/root.py:1730
+#: forms/root.py:1752
msgid "Short text in the tracking code box"
msgstr "Text court dans la boîte du code de suivi"
-#: forms/root.py:1735 qommon/admin/emails.py:173 qommon/admin/texts.py:86
+#: forms/root.py:1757 qommon/admin/emails.py:173 qommon/admin/texts.py:86
msgid "Miscellaneous"
msgstr "Divers"
-#: forms/root.py:1736
+#: forms/root.py:1758
msgid "Tracking Code reminder"
msgstr "Rappel du code de suivi"
-#: forms/root.py:1737
+#: forms/root.py:1759
msgid ""
"Hello,\n"
"\n"
@@ -4968,11 +4971,11 @@ msgstr "champ obligatoire"
msgid "This field is required."
msgstr "Ce champ est obligatoire."
-#: qommon/form.py:310
+#: qommon/form.py:314
msgid "invalid value selected"
msgstr "valeur choisie invalide"
-#: qommon/form.py:326
+#: qommon/form.py:330
msgid ""
"The form you have submitted is invalid. Most likely it has been "
"successfully submitted once already. Please review the form data and submit "
@@ -4982,230 +4985,230 @@ msgstr ""
"est qu’il ait déjà été transmis une fois. Vérifiez les données du "
"formulaire avant de le soumettre à nouveau."
-#: qommon/form.py:330
+#: qommon/form.py:334
msgid "There were errors processing your form. See below for details."
msgstr ""
"Il y a eu un problème à la soumission du formulaire. Regardez ci-dessous "
"pour le détail."
-#: qommon/form.py:591
+#: qommon/form.py:595
#, python-format
msgid "Usable units of time: %s."
msgstr "Unités de temps utilisables : %s."
-#: qommon/form.py:613
+#: qommon/form.py:617
#, python-format
msgid "too many characters (limit is %d)"
msgstr "trop de caractères (la limite est à %d)"
-#: qommon/form.py:705
+#: qommon/form.py:709
msgid "Use previous file."
msgstr "Garder le fichier actuel."
-#: qommon/form.py:707
+#: qommon/form.py:711
msgid "Or upload a new one"
msgstr "Ou en télécharger un nouveau."
-#: qommon/form.py:819 root.py:309
+#: qommon/form.py:823 root.py:309
msgid "failed to store file (system error)"
msgstr "erreur système à l’enregistrement du fichier"
-#: qommon/form.py:834
+#: qommon/form.py:838
msgid "unknown storage system (system error)"
msgstr "système de stockage inconnu (erreur système)"
-#: qommon/form.py:866
+#: qommon/form.py:870
#, python-format
msgid "over file size limit (%s)"
msgstr "dépasse la taille limite (%s)"
-#: qommon/form.py:883
+#: qommon/form.py:887
msgid "invalid file type"
msgstr "type de fichier invalide"
-#: qommon/form.py:893
+#: qommon/form.py:897
msgid "forbidden file type"
msgstr "type de fichier interdit"
-#: qommon/form.py:917 qommon/form.py:919 qommon/form.py:921
+#: qommon/form.py:921 qommon/form.py:923 qommon/form.py:925
msgid "must be a valid email address"
msgstr "doit être une adresse électronique valide"
-#: qommon/form.py:928 qommon/form.py:934 qommon/form.py:942 qommon/form.py:944
+#: qommon/form.py:932 qommon/form.py:938 qommon/form.py:946 qommon/form.py:948
msgid "invalid address domain"
msgstr "domaine de l’adresse invalide"
-#: qommon/form.py:959
+#: qommon/form.py:963
msgid "Digits"
msgstr "Chiffres"
-#: qommon/form.py:964
+#: qommon/form.py:968
msgid "Phone Number"
msgstr "Numéro de téléphone"
-#: qommon/form.py:969
+#: qommon/form.py:973
msgid "Phone Number (France)"
msgstr "Numéro de téléphone (France)"
-#: qommon/form.py:974
+#: qommon/form.py:978
msgid "Zip Code (France)"
msgstr "Code postal (France)"
-#: qommon/form.py:979
+#: qommon/form.py:983
msgid "SIREN Code (France)"
msgstr "Code SIREN (France)"
-#: qommon/form.py:984
+#: qommon/form.py:988
msgid "SIRET Code (France)"
msgstr "Code SIRET (France)"
-#: qommon/form.py:989
+#: qommon/form.py:993
msgid "NIR (France)"
msgstr "Numéro de sécurité sociale / NIR (France)"
-#: qommon/form.py:993
+#: qommon/form.py:997
msgid "IBAN"
msgstr "IBAN"
-#: qommon/form.py:996
+#: qommon/form.py:1000
msgid "Regular Expression"
msgstr "Expression rationnelle"
-#: qommon/form.py:997
+#: qommon/form.py:1001
msgid "Django Condition"
msgstr "Condition (Django)"
-#: qommon/form.py:1101 qommon/form.py:1253
+#: qommon/form.py:1105 qommon/form.py:1257
msgid "invalid value"
msgstr "valeur invalide"
-#: qommon/form.py:1161 qommon/form.py:1165
+#: qommon/form.py:1165 qommon/form.py:1169
msgid "invalid date"
msgstr "date invalide"
-#: qommon/form.py:1168
+#: qommon/form.py:1172
#, python-format
msgid "invalid date: date must be on or after %s"
msgstr "date invalide : la date doit être postérieure ou égale à %s"
-#: qommon/form.py:1171
+#: qommon/form.py:1175
#, python-format
msgid "invalid date; date must be on or before %s"
msgstr "date invalide : la date doit être antérieure ou égale à %s"
-#: qommon/form.py:1217
+#: qommon/form.py:1221
msgid "invalid time"
msgstr "heure invalide"
-#: qommon/form.py:1266
+#: qommon/form.py:1270
msgid "invalid regular expression"
msgstr "expression rationnelle invalide"
-#: qommon/form.py:1330
+#: qommon/form.py:1334
#, python-format
msgid "You must select at most %d answers."
msgstr "Vous devez sélectionner au plus %d réponses."
-#: qommon/form.py:1383
+#: qommon/form.py:1387
msgid "wrong format"
msgstr "format invalide"
-#: qommon/form.py:1393
+#: qommon/form.py:1397
msgid "must start with http:// or https:// and have a domain name"
msgstr "doit commencer par http:// ou https:// et avoir un nom de domaine"
-#: qommon/form.py:1404
+#: qommon/form.py:1408
msgid "must only consist of letters, numbers, or underscore"
msgstr "uniquement des lettres, des chiffres et le tiret bas (_)"
-#: qommon/form.py:1413
+#: qommon/form.py:1417
msgid "Accepted units: MB (megabytes), kB (kilobytes), for example: 3 MB"
msgstr "Unités acceptées : Mo (mégaoctet), ko (kilooctet), par exemple : 3 Mo"
-#: qommon/form.py:1436
+#: qommon/form.py:1440
msgid "invalid file size"
msgstr "taille de fichier invalide"
-#: qommon/form.py:1457 qommon/form.py:1459
+#: qommon/form.py:1461 qommon/form.py:1463
msgid "plus"
msgstr "plus"
-#: qommon/form.py:1457 qommon/form.py:1459
+#: qommon/form.py:1461 qommon/form.py:1463
msgid "minus"
msgstr "moins"
-#: qommon/form.py:1459
+#: qommon/form.py:1463
msgid "times"
msgstr "fois"
-#: qommon/form.py:1468
+#: qommon/form.py:1472
#, python-format
msgid "What is the result of %(a)d %(op)s %(b)d?"
msgstr "Quel est le résultat de %(a)d %(op)s %(b)d ?"
-#: qommon/form.py:1472
+#: qommon/form.py:1476
msgid ""
"Please answer this simple mathematical question as proof you are not a bot."
msgstr ""
"Répondez à cette simple question mathématique pour montrer que vous n’êtes "
"pas un robot."
-#: qommon/form.py:1484
+#: qommon/form.py:1488
msgid "wrong answer"
msgstr "mauvaise réponse"
-#: qommon/form.py:1556
+#: qommon/form.py:1560
#, python-format
msgid "Too many elements (maximum: %s)"
msgstr "Trop d’éléments (maximum : %s)"
-#: qommon/form.py:2268
+#: qommon/form.py:2272
msgid "Confirmation"
msgstr "Confirmation"
-#: qommon/form.py:2314
+#: qommon/form.py:2318
msgid "Very weak"
msgstr "Très faible"
-#: qommon/form.py:2315
+#: qommon/form.py:2319
msgid "Weak"
msgstr "Faible"
-#: qommon/form.py:2316
+#: qommon/form.py:2320
msgid "Moderate"
msgstr "Moyenne"
-#: qommon/form.py:2317
+#: qommon/form.py:2321
msgid "Good"
msgstr "Bonne"
-#: qommon/form.py:2318
+#: qommon/form.py:2322
msgid "Strong"
msgstr "Forte"
-#: qommon/form.py:2319
+#: qommon/form.py:2323
msgid "Very strong"
msgstr "Très forte"
-#: qommon/form.py:2320
+#: qommon/form.py:2324
msgid "Password strength:"
msgstr "Robustesse du mot de passe :"
-#: qommon/form.py:2321
+#: qommon/form.py:2325
msgid "Too short"
msgstr "Trop court"
-#: qommon/form.py:2339 qommon/ident/password.py:97
+#: qommon/form.py:2343 qommon/ident/password.py:97
#, python-format
msgid "Password is too short. It must be at least %d characters."
msgstr "Le mot de passe est trop court. Il doit faire au moins %d caractères."
-#: qommon/form.py:2343 qommon/ident/password.py:100
+#: qommon/form.py:2347 qommon/ident/password.py:100
#, python-format
msgid "Password is too long. It must be at most %d characters."
msgstr "Le mot de passe est trop long. Il doit faire au plus %d caractères."
-#: qommon/form.py:2348 qommon/ident/password.py:106
+#: qommon/form.py:2352 qommon/ident/password.py:106
#, python-format
msgid "Password must contain an uppercase character."
msgid_plural "Password must contain at least %(count)d uppercase characters."
@@ -5213,7 +5216,7 @@ msgstr[0] "Le mot de passe doit contenir un caractère majuscule."
msgstr[1] ""
"Le mot de passe doit contenir au moins %(count)d caractères majuscules."
-#: qommon/form.py:2355 qommon/ident/password.py:114
+#: qommon/form.py:2359 qommon/ident/password.py:114
#, python-format
msgid "Password must contain a lowercase character."
msgid_plural "Password must contain at least %(count)d lowercase characters."
@@ -5221,14 +5224,14 @@ msgstr[0] "Le mot de passe doit contenir un caractère minuscule."
msgstr[1] ""
"Le mot de passe doit contenir au moins %(count)d caractères minuscules."
-#: qommon/form.py:2362 qommon/ident/password.py:122
+#: qommon/form.py:2366 qommon/ident/password.py:122
#, python-format
msgid "Password must contain a digit."
msgid_plural "Password must contain at least %(count)d digits."
msgstr[0] "Le mot de passe doit contenir un chiffre."
msgstr[1] "Le mot de passe doit contenir au moins %(count)d chiffres."
-#: qommon/form.py:2369 qommon/ident/password.py:130
+#: qommon/form.py:2373 qommon/ident/password.py:130
#, python-format
msgid "Password must contain a special character."
msgid_plural "Password must contain at least %(count)d special characters."
@@ -5236,24 +5239,24 @@ msgstr[0] "Le mot de passe doit contenir un caractère spécial."
msgstr[1] ""
"Le mot de passe doit contenir au moins %(count)d caractères spéciaux."
-#: qommon/form.py:2376 qommon/myspace.py:159
+#: qommon/form.py:2380 qommon/myspace.py:159
msgid "Passwords do not match"
msgstr "Les mots de passe ne sont pas identiques"
-#: qommon/form.py:2448
+#: qommon/form.py:2452
msgid "Other:"
msgstr "Autre :"
-#: qommon/form.py:2527
+#: qommon/form.py:2531
msgid "Python"
msgstr "Python"
-#: qommon/form.py:2549
+#: qommon/form.py:2553
msgid "invalid usage, Python expression cannot contain {{"
msgstr ""
"utilisation invalide, les expressions Python ne peuvent pas contenir {{"
-#: qommon/form.py:2553
+#: qommon/form.py:2557
#, python-format
msgid "syntax error in Python expression: %s"
msgstr "erreur de syntaxe dans l’expression Python: %s"
@@ -5359,7 +5362,7 @@ msgid_plural "%(total)s seconds"
msgstr[0] "%(total)s seconde"
msgstr[1] "%(total)s secondes"
-#: qommon/ident/franceconnect.py:43 qommon/publisher.py:903
+#: qommon/ident/franceconnect.py:43 qommon/publisher.py:909
msgid "FranceConnect"
msgstr "FranceConnect"
@@ -6767,7 +6770,7 @@ msgstr ""
msgid "Internal Server Error"
msgstr "Erreur interne du serveur"
-#: qommon/publisher.py:865
+#: qommon/publisher.py:871
msgid ""
"Map data © OpenStreetMap "
"contributors, CC-BY-"
@@ -6777,27 +6780,27 @@ msgstr ""
"org'>OpenStreetMap, CC-BY-SA"
-#: qommon/publisher.py:902
+#: qommon/publisher.py:908
msgid "Belgian eID"
msgstr "Carte d’identité électronique — eID"
-#: qommon/publisher.py:1039
+#: qommon/publisher.py:1045
msgid "Current Theme Name"
msgstr "Nom du thème actuel"
-#: qommon/publisher.py:1040
+#: qommon/publisher.py:1046
msgid "Site URL"
msgstr "URL du site"
-#: qommon/publisher.py:1041
+#: qommon/publisher.py:1047
msgid "Site URL (backoffice)"
msgstr "URL du backoffice"
-#: qommon/publisher.py:1042
+#: qommon/publisher.py:1048
msgid "Current Date"
msgstr "Date actuelle"
-#: qommon/publisher.py:1043
+#: qommon/publisher.py:1049
msgid "Current Date & Time"
msgstr "Date et heure actuelles"
@@ -6867,7 +6870,7 @@ msgstr "Code pays par défaut"
msgid "Key"
msgstr "Clé"
-#: qommon/sms.py:206 wf/redirect_to_url.py:45 wf/wscall.py:167 wscalls.py:223
+#: qommon/sms.py:206 wf/redirect_to_url.py:45 wf/wscall.py:167 wscalls.py:227
msgid "URL"
msgstr "URL"
@@ -7253,6 +7256,16 @@ msgstr "reprendre le brouillon du "
msgid "on page %(page_no)s"
msgstr "sur la page %(page_no)s"
+#: templates/wcs/formdata_filling.html:44
+msgid ""
+"\n"
+"This form is limited to one per user and the associated user has already "
+"one.\n"
+msgstr ""
+"\n"
+"Ce formulaire est limité à un seul par usager et l’usager associé en "
+"a déjà un.\n"
+
#: templates/wcs/formdata_history.html:4
msgid "Log"
msgstr "Historique"
@@ -7602,7 +7615,7 @@ msgstr "Utilisé pour obtenir le document généré dans des expressions."
msgid "Push generated file to portfolio"
msgstr "Envoyer le document généré dans le porte-document"
-#: wf/export_to_model.py:353 wf/geolocate.py:65 wf/wscall.py:189 wscalls.py:240
+#: wf/export_to_model.py:353 wf/geolocate.py:66 wf/wscall.py:189 wscalls.py:244
msgid "Method"
msgstr "Méthode"
@@ -7664,19 +7677,19 @@ msgstr "Éditer les champs"
msgid "Form:"
msgstr "Formulaire :"
-#: wf/geolocate.py:56 wf/geolocate.py:71
+#: wf/geolocate.py:57 wf/geolocate.py:72
msgid "Address String"
msgstr "Adresse"
-#: wf/geolocate.py:57 wf/geolocate.py:78
+#: wf/geolocate.py:58 wf/geolocate.py:79
msgid "Map Variable"
msgstr "Nom de la variable carte"
-#: wf/geolocate.py:58 wf/geolocate.py:85
+#: wf/geolocate.py:59 wf/geolocate.py:86
msgid "Photo Variable"
msgstr "Nom de la variable photo"
-#: wf/geolocate.py:92
+#: wf/geolocate.py:93
msgid "Overwrite existing geolocation"
msgstr "Écraser la géolocalisation existante"
@@ -7848,39 +7861,39 @@ msgstr "Raison"
msgid "Webservice"
msgstr "Webservice"
-#: wf/wscall.py:171 wscalls.py:225
+#: wf/wscall.py:171 wscalls.py:229
msgid "Request Signature Key"
msgstr "Clé de signature de la requête"
-#: wf/wscall.py:176 wscalls.py:228
+#: wf/wscall.py:176 wscalls.py:232
msgid "Query string data"
msgstr "Données à envoyer en paramètres de l’URL"
-#: wf/wscall.py:181 wscalls.py:233
+#: wf/wscall.py:181 wscalls.py:237
msgid "GET"
msgstr "GET"
-#: wf/wscall.py:182 wscalls.py:234
+#: wf/wscall.py:182 wscalls.py:238
msgid "POST (JSON)"
msgstr "POST (JSON)"
-#: wf/wscall.py:183 wscalls.py:235
+#: wf/wscall.py:183 wscalls.py:239
msgid "PUT (JSON)"
msgstr "PUT (JSON)"
-#: wf/wscall.py:184 wscalls.py:236
+#: wf/wscall.py:184 wscalls.py:240
msgid "PATCH (JSON)"
msgstr "PATCH (JSON)"
-#: wf/wscall.py:185 wscalls.py:237
+#: wf/wscall.py:185 wscalls.py:241
msgid "DELETE"
msgstr "DELETE"
-#: wf/wscall.py:195 wscalls.py:247
+#: wf/wscall.py:195 wscalls.py:251
msgid "Post formdata"
msgstr "Envoyer les données du formulaire"
-#: wf/wscall.py:206 wscalls.py:254
+#: wf/wscall.py:206 wscalls.py:258
msgid "POST data"
msgstr "Données à envoyer dans le corps de la requête"