PnX-SI / gn_mobile_occtax

Application mobile pour la saisie dans le module Occtax de GeoNature
GNU General Public License v3.0
13 stars 5 forks source link

[Occtax mobile 2.0.1] Observation_status non renseigné #146

Closed JeromeMaruejouls closed 2 years ago

JeromeMaruejouls commented 2 years ago

Lorsque l'on utilise Occtax Mobile, on ne peut pas renseigner le statut de l'observation (Présent, absent). Cela me semble logique vu que l'application est prévue pour saisir quand on voit quelque chose. Mais le statut par défault (configuré dans la table pr_occtax.defaults_nomenclatures_value) n'est pas utilisé dans la base :

Je pense qu'il faudrait modifier la table pr_occtax.t_occurrences_occtax en initialisant id_nomenclature_observation_status avec la valeur defini dans defaults_nomenclatures_value (comme cela est configuré dans la synthèse).

Qu'en pensez vous ?

TheoLechemia commented 2 years ago

Oui ça me parait une bonne idée effectivement. Dans occtax-web toutes les nomenclatures par défaut sont renvoyées au front, du coup on avait pas mis le doublon de la valeur par défaut en base. Mais avec l'usage du mobile ça devient indispensable. Toute PR bienvenue si tu t'en sens capable ;)

JeromeMaruejouls commented 2 years ago

Alors je viens de faire la modif en local :

ALTER TABLE ONLY pr_occtax.t_occurrences_occtax ALTER COLUMN id_nomenclature_observation_status SET DEFAULT pr_occtax.get_default_nomenclature_value('STATUT_OBS'::character varying);

Cependant, ça ne fonctionne pas lors de l'enregistrement d'un relevé Occtax mobile. J'ai l'impression que l'appli envoi un Statut Obs à NULL et donc, la valeur par défault n'est pas inséré. (supposition, il faudrait que je trouve un moyen de voir les données retournées par l'appli)

camillemonchicourt commented 2 years ago

Duplicate https://github.com/PnX-SI/gn_mobile_occtax/issues/66

TheoLechemia commented 2 years ago

Effectivement si une valeur NULL est explicitement poussé, la valeur par défaut en base n'est pas prise. La solution dans ce cas là, serait de le mettre côté API, sur les modèles SQLAlchemy. J'investigue côté mobile pour voir ce qu'il se passe. Si tu es en dev, tu peux regarder ce que te renvoie l'appli mobile en mettant des print côté API ..

TheoLechemia commented 2 years ago

Voilà ce qui est envoyé par le mobile : {'id': 198839908, 'module': 'occtax', 'geometry': {'type': 'Point', 'coordinates': [6.053102016448975, 44.576491092684044]}, 'properties': {'meta_device_entry': 'mobile', 'date_min': '2022-04-20T00:00:00Z', 'date_max': '2022-04-20T00:00:00Z', 'id_dataset': 7, 'id_digitiser': 3, 'observers': [3], 'comment': None, 'default': {'typ_grp': {'label': 'NSP', 'value': 129}}, 'id_nomenclature_grp_typ': 129, 't_occurrences_occtax': [{'cd_nom': 549734, 'nom_cite': 'Aaptos adriatica', 'regne': 'Animalia', 'group2_inpn': 'any', 'properties': {'meth_obs': {'label': 'Vu', 'value': 37}, 'eta_bio': {'label': 'Observé vivant', 'value': 154}, 'meth_determin': {'label': 'Non renseigné', 'value': 438}, 'statut_bio': {'label': 'Non renseigné', 'value': 30}, 'occ_comportement': {'label': 'Inconnu', 'value': 544}, 'naturalite': {'label': 'Sauvage', 'value': 157}, 'preuve_exist': {'label': 'Inconnu', 'value': 77}, 'counting': [{'index': 1, 'stade_vie': {'label': 'Inconnu', 'value': 1}, 'sexe': {'label': 'Non renseigné', 'value': 168}, 'obj_denbr': {'label': 'Individu', 'value': 143}, 'typ_denbr': {'label': 'Ne sait pas', 'value': 91}, 'min': 1, 'max': 1}]}, 'id_nomenclature_obs_technique': 37, 'id_nomenclature_bio_condition': 154, 'id_nomenclature_determination_method': 438, 'id_nomenclature_bio_status': 30, 'id_nomenclature_behaviour': 544, 'id_nomenclature_naturalness': 157, 'id_nomenclature_exist_proof': 77, 'cor_counting_occtax': [{'id_nomenclature_life_stage': 1, 'id_nomenclature_sex': 168, 'id_nomenclature_obj_count': 143, 'id_nomenclature_type_count': 91, 'count_min': 1, 'count_max': 1}]}]}}

Pas d'id_nomenclature_observation_status. Donc c'est le backend qui met la valeur NULL..

DonovanMaillard commented 2 years ago

Un commit a été fait coté GeoNature, ca sera donc corrigé lors de la release de GeoNature 2.10.0.

En attendant, je ferme ce ticket pour ne garder que l'original #66