Closed JeromeMaruejouls closed 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 ;)
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)
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 ..
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..
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
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 ?