Camptocamp – Actualités

Le projet c2c-Geoform

25 septembre 2018

Le projet c2c-GeoForm fournit un ensemble d’outils (ou framework) facilitant la création de pages web contenant des formulaires à partir de modèles décrits en Python pour différents types de données, dont les géométries. Les développeurs utilisant c2c-GeoForm créent de manière déclarative des modèles à partir desquels le framework peut créer des formulaires, des vues ou des listes. Le code du projet a fortement évolué lors du développement de l’interface d’administration de GeoMapfish 2.3.

Il existe dans c2c-GeoForm un modèle (appelé scaffold) qui permet de générer un projet fonctionnel de base. Vous pouvez également regarder le code de l’interface d’administration de GeoMapfish et tester le formulaire (login : admin, mdp : c2c).

Le code est basé sur un contrôleur abstrait (voir ici) avec des modèles de base.

Il est ensuite possible de créer, par héritage, des contrôleurs concrets et de faire des surcharges (voir par exemple le projet GeoMapfish).

Ceci rend le projet flexible et les formulaires peuvent être facilement personnalisés.

Le projet se base sur plusieurs bibliothèques :

  • Colander permet de gérer la validation des données et de (dé)sérialiser les données envoyées en POST de données XML ou JSON.
  • ColanderAlchemy, permet de générer des schémas Colander pour SQLAlchemy. Cela permet de définir directement la configuration de l’interface dans le modèle de données.
  • deform, bibliothèque de formulaires, en Python. Il est donc possible d’utiliser tous les widgets de deform : http://deformdemo.repoze.org/.

c2c-GeoForm vient également avec des modules supplémentaires notamment pour les champs géométriques et la gestion des clés étrangères, des relations n-n ou encore les recaptcha. Quelques exemples de modules sont présentés ci-dessous.

Liste déroulante

calendRier

Carte

Fichier

Infobulle

Le formulaire gère les liaisons 1-n, dans notre exemple, il permet d’ajouter plusieurs contacts :

Il est possible également de prévoir un processus avec plusieurs étapes pour accompagner l’utilisateur.

Les formulaires sont validés à chaque étape :

Une dernière étape, facultative, est d’afficher une synthèse du formulaire pour confirmation par l’utilisateur :

Comme vous pouvez le voir dans l’aperçu ci-dessus, il est possible de s’assurer que l’utilisateur n’est pas un robot lors de la soumission du formulaire. Les captures d’écran ci-dessous illustrent les différentes étapes de tests avec reCaptcha :

Usages et intégration

Ce type de formulaire s’insère très bien dans un portail GeoMapfish car il utilise les mêmes briques logicielles, cependant il est tout à fait possible d’utiliser d’autres clients, tels QGIS pour visualiser les données géographiques. D’autre part, MapFish Print permet l’impression de rapports de synthèse pour être envoyé à l’utilisateur ou à l’administrateur pour traitement.

L’usage typique de ce genre de formulaire est la numérisation des formulaires entre l’usager et les collectivités, mairies, etc. Par exemple, un des premiers projets mis en production permet aux usagers de demander un permis d’empiétement sur l’espace public (travaux, publicité, etc). Le processus permet à différents intervenants (police, pompiers et ambulances) d’accepter, refuser ou de demander des modifications à la demande.

Une démo générique est disponible ici mais la nouvelle interface d’administration de GeoMapfish est plus complète.

N’hésitez pas à revenir vers nous si vous êtes intéressés !