PnX-SI / odk2gn

Python module for data synchronisation between ODK and GeoNature-monitoring
GNU General Public License v3.0
3 stars 3 forks source link

[ODK2GN avec GN 2.13] Installation incomplète ? #27

Open JeromeMaruejouls opened 8 months ago

JeromeMaruejouls commented 8 months ago

Bonjour à tous, J'essaie de tester odk2gn sur une serveur de test en debian 12 :

Suite à cela, j'ai voulu mettre en place la synchronisation comme précisé dans la doc, mais je n'ai pas de partie odk2gn dans le menu latéral du module Admin :

Sans pouvoir modifier les permissions via le module admin, j'ai quand meme essayé la commande de synchronisation : geonature odk2gn synchronize monitoring --form_id=stom_form --project_id=3 stom

Et j'obtiens les erreurs suivantes :

  util.warn(
Could not read file at: /home/geonatureadmin/.pyodk_cache.toml. FileNotFoundError(2, 'No such file or directory').
Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.11/site-packages/pyodk/_utils/config.py", line 77, in read_toml
    with open(path, "r") as f:
         ^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/home/geonatureadmin/.pyodk_cache.toml'
INFO:app:--- Start synchro for module stom ---
WARNING:app:The following specific columns are missing from ODK form :
-habitat_input
WARNING:app:Image not found for submission uuid:168db136-edec-424e-8e4f-168141c13d67
WARNING:app:Image not found for submission uuid:168db136-edec-424e-8e4f-168141c13d67
WARNING:app:Image not found for submission uuid:168db136-edec-424e-8e4f-168141c13d67
WARNING:app:Image not found for submission uuid:168db136-edec-424e-8e4f-168141c13d67
ERROR:app:Error while update submision state
INFO:app:--- Finish synchronize for module stom ---

Sans surprise, rien ne s'est synchronisé ! Est ce qu'il s'agit d'un problème de droits ? Pourquoi je n'ai pas accès à la gestion des permissions ?

Merci pour votre aide !

TheoLechemia commented 8 months ago

Salut, ça a l'air d'être un erreur lors du changement de "statut" de tes soumissions. En fait une fois qu'on réussi à les parser, on change le statut des soumissions côté ODK central (on les taggue comme "archivé" ou "valide" je ne sais plus) pour ne pas les re-récupérer lors de la prochaine synchro. Donc c'est peut être un problème de droit côté ODK central . Est ce qu'avec ton utilisateur tu as les droit de changer le statut d'une soumission ? Après ça peu être un problème de changement de l'API côté central.. Il faudrait arrivé à voir le "status code" de l'API central qui correspond à l'erreur : Error while update submision state

Edit : Et il n'y a pas de gestion des permission pour le module ODK2GN.

TheoLechemia commented 8 months ago

Pour que tu ai accès à la config du module odk2gn depuis le module "admin", il faut que ton administrateur "admin" ai des droit sur ce module : geonature permissions supergrant --group --nom "Grp_admin" --yes "Grp_admin" à remplacer par le nom de ton groupe d'admin

TheoLechemia commented 8 months ago

Pour que tu ai accès à la config du module odk2gn depuis le module "admin", il faut que ton administrateur "admin" ai des droit sur ce module : geonature permissions supergrant --group --nom "Grp_admin" --yes "Grp_admin" à remplacer par le nom de ton groupe d'admin

JeromeMaruejouls commented 8 months ago

Merci @TheoLechemia pour l'aide. Je n'ai pas eu bcp de temps aujourd'hui pour regarder mais quelques infos supplémentaires :

INFO:app:--- Start synchro for module stom ---
WARNING:app:The following specific columns are missing from ODK form :
-habitat_input
WARNING:app:Image not found for submission uuid:dca25d74-3247-4605-b598-625c67441c3c
WARNING:app:Image not found for submission uuid:dca25d74-3247-4605-b598-625c67441c3c
WARNING:app:Image not found for submission uuid:dca25d74-3247-4605-b598-625c67441c3c
ERROR:app:Error while update submision state
INFO:app:--- Finish synchronize for module stom ---

Mais je me pose une question ; vu que ce module a déjà des sites créés et que odk permet seulement de rajouter des visites et des observations, est ce qu'il ne faut pas que ces sites soient déjà dans geonature monitoring stom ?

TheoLechemia commented 8 months ago

Que te renvoies la commande avec le --dry-run ? Si la commande est disponible pour moi le module est installé. Il y a juste le problème de l'admin à creuser. Et pour les site, oui effectivement, il faut que tu ai des sites préalablement dans ta base. D'ailleurs comment fait tu pour remplir le formulaire STOM dans ODK sans site ? Il me semblait que cette étape était obligatoire

JeromeMaruejouls commented 8 months ago

--dry-run ne me renvoie rien... Je suppose car les droits ont été correctement configuré (l'objet odk2gn est associé au module Admin (et seulement ce module) dans la table de correspondance... Ca n'explique toutefois pas pourquoi cela n'apparait pas dans le module admin.

Sinon, désolé pour la confusion, je n'avais pas modifié les fichiers csv du dépot : gn_sites.csv notamment. Du coup, il n'y avait pas de correspondance cohérente avec le id_base_site. Apres correction du csv, c'est ok pour moi, la synchro de la visite et des obs se fait bien. Mais par contre, le changement de statuts ne se fait pas d'où le message d'erreur. J'utilise l'utilisateur Administrateur pour cette synchro (il peut modifier le statuts dans odk sans problème).

Tout n'es donc pas fonctionnel encore, mais ca progresse ! Je continuerai mes tests la semaine prochaine. Si certains ont des idées ou des retours d'expérience en tout cas, ca m'intéresse.

(il faut que je vois aussi comment générer rapidement les fichiers csv, et si c'est automatisable)

lpofredc commented 7 months ago

J'ai identifié l'origine du problème de l'affichage des données dans la backoffice. Il manque les permissions CRUVED pour ODK2GN dans la table gn_permissions.t_permissions_available et gn_permissions.t_permissions... J'ai ajouté les permissions CRUD dans gn_permissions.t_permissions_available et associé ces permissions au groupe Administrateur et je peux maintenant voir et éditer les formulaires.

JeromeMaruejouls commented 7 months ago

Effectivement, c'est bien les 5 lignes de CRUED dans gn_permissions.t_permissions_available qu'il manquait pour pouvoir rajouter ces permissions. Merci !

TheoLechemia commented 7 months ago

Effectivement, le module n'a pas fait les modif nécessaires pour être compatible avec GN 2.13. J'avais pas pensé à ça.. Est ce qu'un de vous peux faire une PR avec une migration alembic qui fait ça ? Ou alors partager les requêtes SQL que vous avez lancé ?

camillemonchicourt commented 7 months ago

Exemple sur un autre module : https://github.com/PnX-SI/gn_module_export/pull/183/files

JeromeMaruejouls commented 7 months ago

Allez laissez le moi, je m'en occupe semaine prochaine ! Ça sera une première pour moi (PR github + alembic mais avec l'exemple, je devrai m'en sortir !)

JeromeMaruejouls commented 7 months ago

Je viens de créer la PR pour cette modification : https://github.com/PnX-SI/odk2gn/pull/30

Etant novice dans ce domaine, hésitez pas à me faire remonter les erreurs, commentaires ou une meilleure façon de procéder !