Closed lpofredc closed 10 months ago
Stocker la structure elle même dans la BDD va compliquer les choses. Je pense qu'il vaut mieux partir sur un ou des fichiers JSON (avec la structure en json schema) qui vivent à coté du code:
Pour ce qui en est de construire le module mares directement dans GNC vs dans un module externe "sites", le mettre directement dans GNC me parait être un peu plus simple, mais je n'ai pas tout le contexte sur l'ensemble du projet :)
Oui ça semble plus pertinent de mettre ça dans le cœur car on aura 2 types de programmes :
Ceux consistant à relever des observations d'espèces (BDD définie)
Ceux consistant à inventorier des sites avec des informations diverses (observations d'espèces sur site et autres)
Il est important de garder une approche simple mais aussi générique.
Le fait de définir la structure des données des programmes SITES de manière souple et générique est intéressante, mais il faut qu'elle reste simple à mettre en œuvre pour les structures qui déploieront GeoNature-citizen
Enfin, il est important que la partie PROGRAMME ESPÈCES en cours de développement ne soit pas complexifiée ni perturbée.
De ce que je comprends :
t_programs
pour définir si il s'agit d'un programme SITES ou ESPECES. Et dans le cas d'un programme SITES, il faut aussi pouvoir définir le modèle de données JSON. Où ça ?Très bien pour la partie PROGRAMMES SITES, mais à voir comment ne pas alourdir la partie PROGRAMME ESPÈCES en cours de développement.
Bonjour,
Oui, évidemment cela ne doit pas interférer avec les devs de la partie "PROGRAMME ESPECES".
Ce que nous avions convenu avec @patkap, c'est que le choix du type de programme dans le front sera défini au niveau de la liste des programmes. Si le programme est ESPECE ou SITE, alors la route du programme sera différente (ex: urldusite/program/obstax/{id}
ou urldusite/program/site/{id}
).
Pour le modèle de formulaires, @jolleon propose de les mettre dans des fichiers à part entière, pourquoi pas, dans la limite ou il en sera fait mention dans la bdd (champ json_schema_file
? dans la table des types de sites ?) afin de faire le lien entre les types de sites et les fichiers de formulaires à charger. On peut imaginer un dossier custom_form
avec des modèles de types (un par type de site), adaptable par l'administrateur.
Pour les observations d'espèces sur un site, les composants et services d'observations d'espèces devraient pouvoir être réutilisés.
Pour le dev de ce volet SITE, je propose de merger les devs à cette fonction dans une nouvelle branche dev_sites
OK
Bonjour,
Dans la mesure où les développements de la partie "PROGRAMME SITES" n'interfèrent pas les devs de la partie "PROGRAMME ESPECES", c'est ok pour le PNM.
J'aime bien l'idée de @jolleon qui propose de faire le lien entre les types de sites et les fichiers de formulaires à charger. On peut effectivement imaginer un dossier custom_form
avec des modèles types (un par type de site), adaptable par un admin.
Ok pour merger les devs du volet SITE dans une nouvelle branche dev_sites
.
Ok, donc pour résumer:
dev_sites
du dépot principal Oui, c'est bien ça.
Vous pouvez a minima reprendre le fichier models.py
du dépot gnc_site (branche develop). Le dossier de destination des fichiers de ce module sites côté backend sera GeoNature-citizen/backend/gncitizen/core/sites
côté backend et GeoNature-citizen/backend/gncitizen/core/
côté frontend et
GeoNature-citizen/frontend/src/app/programs/sites
côté frontend.
Le json_schema sera dans un dossier GeoNature-citizen/config/custom/form
. Pour l'heure, il ne contiendra qu'un fichier mares.json
correspondant au projet de mares qui nous concerne.
Le choix du fichier du fichier json-schema
à utiliser doit se faire après consultation de l'API pour savoir quel trame de formulaire utiliser.
Les développements de la partie SITES ont été réalisés sur le fork https://github.com/jolleon/GeoNature-citizen/tree/mares Ils sont en production sur https://www.a-vos-mares.org
Reste donc à les rendre plus générique et les intégrer dans ce dépôt.
Bravo @lpofredc pour ce travail !
Merci, tout le mérite revient à @jolleon et @QuentinJouet qui ont réalisé les développements de ce projet.
Au jour d'aujourd'hui, c'est un module "mares" avec le formulaire d'état des lieux détaillé inscrit "en dur" dans le code. Il devra évoluer vers un outil adaptatif permettant sur un programme d'inventorier différents types de sites avec des formulaires adaptés à chaque types de sites.
Il reste également un important d'intégration de ces développements à GeoNature-citizen qui a évolué en parallèle à ce développement (dont une montée en version d'Angular v6 > v8).
Question naive (alors soyez indulgents :wink: ) :
Ce module "sites" (ou "mares", ou "arbres remarquables") pourrait répondre aux besoins de plusieurs collègues.
Nous n'avons pas d'instance GeoNature-Citizen, mais une instance GeoNature (v1 et prochainement v2). Est-il possible (ou aurait-il été possible) d'intégrer ce module sites à GeoNature plutôt qu'à GeoNature-Citizen ? Je vous propose plusieurs réponses :
Le mode "Site" est totalement intégré dans GeoNature-citizen, qui est un outil à part et non pas un module de GeoNature. C'est même pas vraiment un module de GeoNature-citizen mais plutôt un mode de GeoNature-citizen.
Et GeoNature-citizen est autonome et indépendant de GeoNature, même si il peut être intégré dans son écosystème, de la même manière que GeoNature-atlas. Voir https://github.com/PnX-SI/GeoNature-citizen/issues/100
Ce n'est pas du tout conçu ni développé comme un module GeoNature et c'est fait pour être accessible en ligne à tous, orienté grand public, avec authentification optionnelle si on veut saisir des données etc...
Fichier de description des champs du programme "mares" : https://github.com/PnX-SI/GeoNature-citizen/blob/dev/config/custom/form/mares.json
Bonjour,
Nous allons utiliser Geonature-citizen dans un projet de relevés d'éléments de biodiversité dans une commune en Belgique. Je cherche à comprendre comment configurer un programme de type site. Le fichier mentionné ci-dessus (https://github.com/PnX-SI/GeoNature-citizen/blob/dev/config/custom/form/mares.json) serait bien utile mais le lien est mort.
Pouvez-vous maj le lien?
merci d'avance
@lpofredc et @samuelpriou, vous avez des exemples de configuration de programmes en mode "espèces" (avec champs additionnels) ou en mode "sites" à partager ? Merci.
Bonjour, Voici deux fichiers .json qui nous ont permis de configurer deux programmes en mode "espèces".
Le programme Gypaète Barbu https://obs.mercantour-parcnational.fr/programs/13/observations : gypaète.zip
Le programme Bouquetins des Alpes https://obs.mercantour-parcnational.fr/programs/14/observations : bouquetins.zip
J'ajoute également un programme "site" réalisé par @lpofredc permettant de décrire des mares.
Le programme Mares https://www.a-vos-mares.org/participez/ : mares.zip
Bonne journée
Merci @samuelpriou, une documentation générale sur la configuration des champs additionnels des programmes était prévue, non ?
Oui... Je vais le faire cette semaine.
Je viens de crééer un GIST avec quelques configs de la LPO AuRA: https://gist.github.com/lpofredc/a85e994776efd6a63757d2817fd7862c
Vous pouvez utiliser ce site pour tester et développer vos propres configs.
En parallèle, je réfléchis à un moyen de partager toutes ces ressources (hub Citizen, voire GeoNature ?).
... le site de test... https://partage.lpo-aura.org/minisite/ajsf/
Dans le cadre d'un projet de recensement participatif des mares de l'agglomération de Grenoble, la LPO Isère et la Métropole de Grenoble ont lancé le développement d'un module "mares" dont la généricité pourra également s'appliquer à d'autres types de sites (arbres remarquables, bâtis, etc.). C'est ascan.io et @jolleon qui ont en charge ce projet.
Au regard de la complémentarité de cette approche "sites" avec celle d'observations opportunistes, je propose ce module, initialement prévue en module externe (gnc_site), intègre directement le cœur de l'application GeoNature-citizen. Le choix d'une approche "observation" ou une approche "site" sera alors défini au niveau du programme.
L'objectif de cette plateforme "site"
Il est de répertorier des sites (dans un premier temps des mares):
Pour les visites
Pour plus de généricité et réduire les temps de développements pour cette première version, il a été choisi que le formulaire soit automatiquement généré à partir d'une structure JSON stockée en bdd dans une table "types de sites". Ainsi, chaque type de site pourra disposer d'un formulaire adapté. Cette fonction devrait s'appuyer sur Angular6-json-schema-form ou sur ngx-formly.
De même, les données relevées lors des visites seront dans un premier temps stockées au format JSONB en bdd. Elles pourront être présentées sous la forme d'une table structurée par vues.
Pour les observations
La saisie des observations s'appuiera sur le formulaire en cours de développement dans le coeur de GeoNature-citizen. le lien entre les observations et les sites se fera par une table intermédiaire de correspondances.
Merci pour vos retours rapides.