Giter Site home page Giter Site logo

odk2gn's People

Contributors

amandine-sahl avatar camillemonchicourt avatar lpofredc avatar theolechemia avatar xpdavis avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

odk2gn's Issues

Pb avec les virgules sur les listes d'espèces

Les CSV générés sur les listes d'espèces posent problème avec les valeurs de champs nom_complet en raison des virgules utilisées dans les parenthèses avec l'auteur. Et on peut imaginer le même avec les nom_vern qui sont séparés par des virgules.

Je propose d'utiliser le nom scientifique simple (lb_nom) et le premier nom vernaculaire (avec un split_part sur le nom_vern).

cf. commit sur la PR #6

[ODK2GN avec GN 2.13] Installation incomplète ?

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

  • installation du sous module STOM : fonctionne correctement
  • installation du formulaire STOM sur ODK et création d'une soumission
  • installation de odk2gn (avec la commande python)
  • création du fichier de config : odk2gn_config.toml avec la description du protocole stom
  • mise à jour de la db avec la commande alembic

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 :

  • j'ai bien un objet odk2gn qui est créé dans la db (gn_permission.t_objects)
  • cet objet est bien associé au module Admin (et seulement à ce module) dans la table cor_object_module
  • le schéma odk2gn et la table t_odk_forms ont bien été créés (table vide)

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 !

Préfixer les commandes

Actuellement les commandes du module sont directement synchronize, upgrade_odk_form et odk_schema et . Il serait bien de les préfixer avec odk2gn pour plus de lisibilité

Création de sites depuis les formulaires ODK

Bonjour,

Actuellement seul les niveaux "visites" et "observations" sont implémentés. Il n'est pas possible de créer des sites à partir des formulaires ODK.

Est-ce qu'il y avait des contraintes dans la gestion des créations de sites ou est-ce simplement pour des questions de temps que vous n'avez pas fait ces dev ?
Nous nous sommes lancés dans la création de formulaires ODK avec création de sites mais on coince sur l'import de ces formulaires du coup...
Merci d'avance

[BUG] Erreur lors de la création de sites de type polygones

La création de sites avec une géométrie de types polygones soulève une erreur à l'INSERT en base de donnée. La geom de l'INSERT est de type 3D alors que le champs attend une géométrie 2D.

(psycopg2.errors.InvalidParameterValue) Geometry has Z dimension but column does not [SQL: INSERT INTO gn_monitoring.t_base_sites (id_inventor, id_digitiser, id_nomenclature_type_site, base_site_name, base_site_description, base_site_code, first_use_date, geom, uuid_base_site, meta_create_date, meta_update_date, altitude_min, altitude_max) VALUES (%(id_inventor)s, %(id_digitiser)s, %(id_nomenclature_type_site)s, %(base_site_name)s, %(base_site_description)s, %(base_site_code)s, %(first_use_date)s, ST_GeomFromEWKT(%(geom)s), (SELECT uuid_generate_v4() AS uuid_generate_v4_1), %(meta_create_date)s, %(meta_update_date)s, %(altitude_min)s, %(altitude_max)s) RETURNING gn_monitoring.t_base_sites.id_base_site]
[parameters: {'id_inventor': 32830, 'id_digitiser': None, 'id_nomenclature_type_site': 816, 'base_site_name': 'Test chrono', 'base_site_description': 'Chronoventzire ', 'base_site_code': None, 'first_use_date': datetime.datetime(2023, 8, 1, 9, 39, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), 'geom': 'POLYGON Z ((5.738817 45.187659 0, 5.740505 45.188183 0, 5.741578 45.187478 0, 5.739797 45.186505 0, 5.738817 45.187659 0))', 'meta_create_date': None, 'meta_update_date': None, 'altitude_min': None, 'altitude_max': None}] (Background on this error at: http://sqlalche.me/e/13/9h9h

Je propose de transformer la geom en 2D dans la fonction to_wkt avec shapely.

Erreur sur la synchro et upgrade sur un module sans partie d'observation

Bonjour l'équipe,

Après de multiples tests sur différents modules, j'arrive à aboutir sur quelques conclusions :

Un module monitoring (assez spécifique) sans partie d'observation (seulement : groupe site, site et visite), qui fonctionne sur géonature sans problème, ne peut pas aboutir sur les commandes d'upgrade_odk_form et synchronize via ODK.

Retour d'erreur sur la commande upgrade_odk_form :

  File "/home/gnadmin/gnModules/odk2gn/odk2gn/monitoring_config.py", line 7, in get_nomenclatures_fields
    config[niveau].get("specific", []),
KeyError: 'observation'

Retour d'erreur sur la commande synchronize :

 File "/home/gnadmin/gnModules/odk2gn/odk2gn/monitoring_utils.py", line 130, in parse_and_create_visit
    visit_generic_column = monitoring_config["visit"]["generic"]
TypeError: 'NoneType' object is not subscriptable

Vous me confirmez de votre côté que les modules doivent impérativement avoir une partie observation, pour que tout se déroule bien pour la liaison avec ODK ?

PyODK 0.2.0, Client has no module auth

La version 0.2.0 de PyODK apporte quelques changements, la fonction auth n'existe plus dans la classe Client et soulève l'erreur suivante:

(venv) user:~/gnModules/odk2gn$ synchronize stom --form_id=stom_form --project_id=1
INFO:app:--- Start synchro for module stom ---
WARNING:app:No mapping found for module stom - get the default ODK monitoring template mapping !  
WARNING:app:The following specific columns are missing from ODK form :
-habitat_input
URL BIS################## projects/1/forms/stom_form/submissions/uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0/attachments/None
WARNING:app:Image not found for submission uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0
URL BIS################## projects/1/forms/stom_form/submissions/uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0/attachments/None
WARNING:app:Image not found for submission uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0
URL BIS################## projects/1/forms/stom_form/submissions/uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0/attachments/None
WARNING:app:Image not found for submission uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0
URL BIS################## projects/1/forms/stom_form/submissions/uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0/attachments/None
WARNING:app:Image not found for submission uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0
URL BIS################## projects/1/forms/stom_form/submissions/uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0/attachments/None
WARNING:app:Image not found for submission uuid:6f2d4215-262b-4e88-a987-0161ecfe87f0
Traceback (most recent call last):
  File "/home/gnadmin/geonature/backend/venv/bin/synchronize", line 11, in <module>
    load_entry_point('odk2gn', 'console_scripts', 'synchronize')()
  File "/home/gnadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/gnadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/gnadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/gnadmin/geonature/backend/venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/gnadmin/gnModules/odk2gn/odk2gn/main.py", line 179, in synchronize
    update_review_state(project_id, form_id, sub["__id"], "approved")
  File "/home/gnadmin/gnModules/odk2gn/odk2gn/odk_api.py", line 79, in update_review_state
    token = client.auth.get_token(
AttributeError: 'Client' object has no attribute 'auth'

Fonction synchronize_all_modules et synchronize, fonctionnement différent ?

Hello l'équipe,

Suite à mon dernier post #28 on a eu quelques surprises en passant la synchro automatique (synchronize_all_modules) la synchronisation aboutie ! (Alors qu'en passant en ligne de commande par synchronize aucun n'aboutissement).

Les données saisies par formulaire sont bien synchronisées sur la base de donnée géonature sans bug ou problème.

Par contre dans le fichier log, on a des erreurs suite à la fonction upgrade_all_forms qui est aussi lancé mais qui n'aboutie pas. Même erreur que #28 sur upgrade_odk_form ce qui est cohérent.

j'ouvre une issue mais c'est plus a titre d'information/retour d'utilisation.
En tout cas merci pour tout votre travail

Doc

Faire de la doc sur les entry point

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.