(15s) Bonjour, je vais vous montrer quelques astuces pour faire des formulaires avancés dans QGIS qui seront faciles à remplir pour les utilisateurs. Je vais aussi vous montrer ces formulaires dans le web grâce à Lizmap sans plus de configuration la plupart du temps. De cette façon, vous obtiendrez plus de participation et moins d'erreurs dans vos données.
Commençons par forcer la saisie de certains champs !
- Les noms des champs dans la base de données sont simples/bruts. - Rendre le champ plus compréhensible
(20s) Avec le "Conception par glisser / déposer" de QGIS nous pouvons : - Omettre certains du formulaire - Changer l'ordre des champs - Créer des onglets et des boîtes de groupe
Le premier niveau de groupes de champs se présentent sous la forme d'onglet
En dessous, il est possible d'avoir des boîtes de groupe
(35s) Disons que nous créons un formulaire pour une campagne de crowdsourcing mais aussi pour les utilisateurs connectés à Lizmap (comme les personnes de notre organisation). Ce formulaire comporte de nombreux champs, mais beaucoup d'entre eux ne sont pas obligatoires. Nous ne voulons donc pas les afficher tous, car lorsqu'un formulaire semble trop long à remplir, certains utilisateurs risquent d'abandonner et de le fermer. Pour éviter cela, nous créons un champ booléen appelé `has_details`, avec `Add details` comme alias pour avoir un titre plus compréhensible pour ce champ qui est défini comme une `Checkbox`...
(15s) ....nous créons également un onglet "Détails" configuré avec un "contrôle de visibilité par expression" pour ne l'afficher que lorsque la case "has_details" est cochée.
(10s) Voici le résultat. Comme vous pouvez le voir, l'onglet "Détails" n'est visible que lorsque l'option "Ajouter des détails" est cochée.
(10s) Maintenant, nous voulons que les gens puissent télécharger des photos. Nous créons des champs définis avec le type d'outil' `Pièce jointe` et avec un filtre pour afficher uniquement les fichiers JPEG et PNG.
(10s) Vous pouvez voir dans Lizmap que seuls les fichiers avec des extensions définies sont affichés lors de leur sélection.
(10s) Après la sélection des fichiers, vous pouvez également faire pivoter ou recadrer les images. C'est plus pratique que de devoir installer un logiciel pour cela.
(10s) Ici, nous définissons un champ `Multiligne` et utilisons une expression pour contraindre le champ à avoir au moins trente caractères et afficher un message informatif lorsqu'il n'est pas honoré.
(10s) Dans Lizmap, la contrainte est visible au survol du nom du champ et lorsqu'elle n'est pas honorée à la soumission du formulaire.
(15s) Lorsque les contributeurs sont connectés à Lizmap, nous pouvons utiliser leur login ou leurs groupes d'utilisateurs dans les expressions du formulaire grâce aux variables d'expression. Ici nous créons un champ invisible `login` qui sera rempli avec le login de l'utilisateur lorsque le formulaire sera sauvegardé.
(5s) L'outil valeur relationnelle est très pratique pour afficher une liste de valeurs d'une autre couche.
(10s) Mais parfois la liste peut être très longue. Dans cet exemple, nous affichons les noms scientifiques des amphibiens et des reptiles en France. Pour faciliter la sélection, nous pourrions, par exemple, suggérer le dernier enregistrement précédent en haut de la liste pour les utilisateurs connectés
(10s) Pour cela, nous créons une couche à partir d'une vue avec cette requête SQL. Il s'agit d'un UNION ALL avec le dernier enregistrement précédent pour les utilisateurs connectés et la liste complète des animaux.
(20s) En rouge, la table attributaire nous montre le dernier enregistrement pour les utilisateurs alice, bob et demo. Le reste est la liste complète des animaux.
(15s) Pour obtenir uniquement l'enregistrement précédent de l'utilisateur connecté dans Lizmap, nous utilisons cette expression `Filter` qui utilise à nouveau la variable d'expression `@lizmap_user`.
(15s) Comme vous pouvez le voir maintenant, lorsqu'un utilisateur connecté enregistre un formulaire, il a en haut de la liste des noms scientifiques la dernière espèce suggérée.
(5s)