PnX-SI / GeoNature-citizen

Portail web d'inventaire citoyen de la biodiversité à destination du grand public
https://pnx-si.github.io/GeoNature-citizen/
GNU Affero General Public License v3.0
20 stars 29 forks source link

Comment gère-t-on la liste des espèces d'un programme ? #260

Closed ThomasBruleOpen closed 8 months ago

ThomasBruleOpen commented 3 years ago

Bonjour à tous,

A Rennes Métropole, nous sommes en train de finaliser la mise en place de notre atlas participatif basé sur Citizen, et il me reste quelques interrogations à solutionner : je ne comprends pas comment fonctionne la liste des espèces à observer d'un programme. J'ai vu sur d'autres Citizen des carrousels d'espèce dans le formulaire de saisie, j'ai aussi vu des programmes autour d'espèces végétales (je croyais qu'on se basait uniquement sur TaxRef ?), et moi, je n'ai qu'un champ, autocomplété, pour saisir mon espèce.

J'ai bien vu dans la table t_program un champ taxonomy_list, mais quand je mets une autre valeur que 100 (valeur de l'exemple), le site plante lorsque je veux accéder à mon programme d'observations ...

Quelqu'un pourrait il m'expliquer le fonctionnement ?

D'ailleurs plus globalement, s'il existe quelque part une documentation du modèle de donnée, je suis preneur, parce que j'ai d'autres questions potentiellement derrière ...

Merci d'avance pour votre aide !

camillemonchicourt commented 3 years ago

La valeur correspond à l'identifiant d'une liste de taxons définie dans TaxHub. Voir la doc de TaxHub sur le sujet.

On peut définir une liste différente par programme.

lpofredc commented 3 years ago

Merci @camillemonchicourt,

En effet, les listes de taxons utilisées par GeoNature-citizen sont fournies par l'instance de TaxHub associée. Il faut pour cela préalablement générer les listes d'espèces dans TaxHub et les configurer dans GeoNature-citizen (un redémarrage du Backend de citizen peut s'avérer nécessaire). Elles sont ainsi disponibles dans l'interface d'administration des programmes.

Concernant le mode de sélection des espèces, il est défini en fonction du nombre de taxons de la liste. cf. https://github.com/PnX-SI/GeoNature-citizen/issues/62. Ce comportement est configurable dans le fichier frontend/src/conf/app:

    ...
    taxonSelectInputThreshold: 7,
    taxonAutocompleteInputThreshold: 12,
    taxonAutocompleteFields: [
      "nom_complet",
      "nom_vern",
      "nom_vern_eng",
      "cd_nom"
    ],
    taxonDisplaySciName: true,
    ...

Le MCD est disponible ici: https://github.com/PnX-SI/GeoNature-citizen/blob/master/mcd.png

Screenshot_2021-03-29 Enquêtes - 4 - Programmes - GN-Citizen Backoffice d'administration (version 0 99 2-dev)

MCD

ThomasBruleOpen commented 3 years ago

Merci beaucoup pour ces réponses !! Je vais regarder les listes Taxhub de plus près ...

Par contre, vous parlez d'une interface d'administration ??? Je n'ai jamais rien lu sur une interface d'administration disponible ??? Aurais je loupé un wagon ?

camillemonchicourt commented 3 years ago

Pour l'interface d’administration, voir https://geonature-citizen.readthedocs.io/fr/latest/installation.html#securiser-l-interface-d-administration Mais je ne suis pas certain de son URL.

ThomasBruleOpen commented 3 years ago

Bonjour, merci beaucoup, j'ai quelque chose qui tient la route désormais !

Mon interface d'admin ne semble pas fonctionnelle, mais je vais essayer de faire sans ;.. ;-)

lpofredc commented 3 years ago

Pour l'interface d'administration, l'appli dispose-t-elle de son propre sous-domaine? L'architecture actuelle de Citizen rend difficile la déclinaison dans un chemin plutôt qu'un sous-domaine.

Voici un exemple de configuration apache:

<VirtualHost *:80>
    ServerName gncitizen.lpo-aura.org

    RewriteEngine on
        RewriteCond "%{DOCUMENT_ROOT}/assets/$1" -f
        RewriteRule "^/api/media/(.*)" "/assets/$1"

      <Location />
           ProxyPass  http://127.0.0.1:4000/ retry=0
           ProxyPassReverse  http://127.0.0.1:4000/
      </Location>

      <Location /api>
           ProxyPass  http://127.0.0.1:5002/api retry=0
           ProxyPassReverse  http://127.0.0.1:5002/api
      </Location>

    <Location /api/admin/>
        AuthType Basic
        AuthName "Restricted Area"
        AuthBasicProvider file
        AuthUserFile "/home/citizen/htpasswd"
       Require user monuser
   </Location>

    ErrorLog /var/log/apache2/citizen.log
    CustomLog /var/log/apache2/citizen.log combined
</VirtualHost>