Closed JeromeMaruejouls closed 1 year ago
Merci Jérome,
Ok pour les dénombrement, à voir avec @sgrimault pour fixer ça avant la release à venir.
Pour les commentaires, c'est plus subtil : le paramètre de configuration COMMENT est devenu comment en minuscule... comme MIN et MAX ont évolué.
Soit on repasse en majuscule (pourquoi ce changement?), en remettant MIN et MAX comme avant.Soit il faut tenir la configuration à jour, en laissant l'ancien + le nouveau paramètre pour gérer une flotte à différentes versions.
Bonjour, Le modèle a évolué notamment pour la gestion des médias et aussi pour prendre en compte les évolutions à venir, notamment sur la gestion des champs additionnels. Le modèle d'avant était trop rigide rendant difficile toute évolution du modèle. L'ajout des médias venant complexifier encore plus cet existant, d'où cette refonte pour un modèle totalement dynamique. L'API de GeoNature réclame un modèle dynamique lors de l'envoi d'un relevé. Exemple d'une occurrence pour un relevé où on retrouve tous les attributs constituant ce taxon :
{
"id_nomenclature_obs_technique": 37,
"id_nomenclature_bio_condition": 154,
"id_nomenclature_bio_status": 30,
"id_nomenclature_naturalness": 157,
"id_nomenclature_exist_proof": 77,
"id_nomenclature_behaviour": 544,
"id_nomenclature_observation_status": 84,
"id_nomenclature_blurring": 172,
"id_nomenclature_source_status": 73,
"determiner": "Administrateur test",
"id_nomenclature_determination_method": 438,
"nom_cite": "Artamus = Artamus - [GN - 440283]",
"cd_nom": 440283,
"meta_v_taxref": null,
"sample_number_proof": null,
"digital_proof": null,
"non_digital_proof": null,
"comment": null,
"additional_fields": {
"Test": null
},
"cor_counting_occtax": [
{
"id_counting_occtax": null,
"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,
"medias": [],
"additional_fields": {
"test_counting": null
}
}
]
}
Le seule bémol du modèle côté GeoNature est que je dois encore garder un mapping "en dur" pour les attributs préfixés par id_nomenclature_
afin de pouvoir traduire l'équivalent issu de la nomenclature avec l'attendu lors de l'envoi. Exemple :
OBJ_DENBR
est l'équivalent de id_nomenclature_obj_count
.C'est pourquoi, au niveau du paramétrage, j'ai tout normalisé pour garder une cohérence coté modèle géré par l'application et que la casse est importante (cf. README.md).
Parfait, merci pour les explications,
Ces changements et la logique de conserver les paramètres anciens + nouveaux (pour les flottes ayant plusieurs versions) seront donc mentionnés dans la prochaine note de version.
En revanche, peux-tu mettre des valeurs 1/1 par défaut pour les dénombrements avant la publication de la 2.4.1 s'il te plait (qui s'appellera 2.5 d'ailleurs) ?
À noter qu'il serait possible de "versionner" la configuration de l'application "Occtax" lors de l'appel à la route GET -> /api/gn_commons/t_mobile_apps
. Cette route permet notamment de récupérer le paramétrage de l'application ainsi que de déterminer si il y a une version plus à jour en comparant les valeurs de l'attribut version_code
.
On pourrait rajouter autant d'entrées qu'il y a de versions disponibles de l'application "Occtax" sur un parc de terminaux pour faciliter une transition en douceur (le temps de pouvoir propager la mise à jour).
Ainsi en fonction de sa version, l'application récupère la bonne entrée correspondante. Et pour garder une certaine compatibilité avec l'existant si jamais elle ne trouve aucune correspondance avec son numéro de version, elle récupère la dernière disponible.
Exemple :
[
{
"app_code": "OCCTAX2",
"id_mobile_app": 3,
"package": "fr.geonature.occtax2",
"settings": {
"area_observation_duration": 365,
"map": {
"center": [46, 2],
"layers": [
{
"label": "OSM",
"source": "https://a.tile.openstreetmap.org"
},
{
"label": "Demo offline",
"source": "demo_scan.mbtiles"
},
{
"label": "Mailles 5km",
"source": "mailles5pne.geojson",
"style": {
"color": "#FF0000",
"fill": true,
"fillColor": "#FF8000",
"fillOpacity": 0.2,
"opacity": 0.9,
"stroke": true,
"weight": 4
}
}
],
"max_bounds": [
[52, -6],
[40, 9]
],
"max_zoom": 19.0,
"min_zoom": 8.0,
"min_zoom_editing": 12.0,
"show_compass": true,
"show_scale": true,
"start_zoom": 10.0
},
"nomenclature": {
"save_default_values": true,
"information": [
"METH_OBS",
{
"key": "ETA_BIO"
},
{
"key": "METH_DETERMIN",
"visible": true,
"default": false
},
{
"key": "determiner",
"visible": true,
"default": false
},
{
"key": "STATUT_BIO",
"visible": true,
"default": false
},
{
"key": "NATURALITE",
"visible": true,
"default": false
},
{
"key": "PREUVE_EXIST",
"visible": true,
"default": false
},
{
"key": "comment",
"visible": true,
"default": false
}
],
"counting": [
"STADE_VIE",
"SEXE",
"OBJ_DENBR",
"TYP_DENBR",
"count_min",
"count_max"
]
},
"sync": {
"code_area_type": "M1",
"geonature_url": "https://demo.geonature.fr/geonature",
"observers_list_id": 1,
"page_size": 1000,
"taxa_list_id": 100,
"taxhub_url": "https://demo.geonature.fr/taxhub",
"uh_application_id": 1
}
},
"url_apk": "https://demo.geonature.fr/geonature/api/static/mobile/occtax/occtax-2.4.1-rc4-generic-debug.apk",
"url_settings": "https://demo.geonature.fr/geonature/api/static/mobile/occtax/settings.json",
"version_code": "3163"
},
{
"app_code": "OCCTAX2",
"id_mobile_app": 3,
"package": "fr.geonature.occtax2",
"settings": {
"area_observation_duration": 365,
"map": {
"center": [46, 2],
"layers": [
{
"label": "OSM",
"source": "https://a.tile.openstreetmap.org"
},
{
"label": "Demo offline",
"source": "demo_scan.mbtiles"
},
{
"label": "Mailles 5km",
"source": "mailles5pne.geojson",
"style": {
"color": "#FF0000",
"fill": true,
"fillColor": "#FF8000",
"fillOpacity": 0.2,
"opacity": 0.9,
"stroke": true,
"weight": 4
}
}
],
"max_bounds": [
[52, -6],
[40, 9]
],
"max_zoom": 19.0,
"min_zoom": 8.0,
"min_zoom_editing": 12.0,
"show_compass": true,
"show_scale": true,
"start_zoom": 10.0
},
"sync": {
"code_area_type": "M1",
"geonature_url": "https://demo.geonature.fr/geonature",
"observers_list_id": 1,
"page_size": 1000,
"taxa_list_id": 100,
"taxhub_url": "https://demo.geonature.fr/taxhub",
"uh_application_id": 1
}
},
"url_apk": "https://demo.geonature.fr/geonature/api/static/mobile/occtax/occtax-2.2.0-generic-release.apk",
"url_settings": "https://demo.geonature.fr/geonature/api/static/mobile/occtax/settings.json",
"version_code": "3020"
}
]
Parfait, merci pour les explications,
Ces changements et la logique de conserver les paramètres anciens + nouveaux (pour les flottes ayant plusieurs versions) seront donc mentionnés dans la prochaine note de version.
En revanche, peux-tu mettre des valeurs 1/1 par défaut pour les dénombrements avant la publication de la 2.4.1 s'il te plait (qui s'appellera 2.5 d'ailleurs) ?
C'est déjà le cas dans la configuration par défaut. Tu veux dire que si on configure la nomenclature dans le fichier de paramétrage, on a plus la valeur par défaut ? Je vais vérifier ce point là.
C'est déjà le cas dans la configuration par défaut. Tu veux dire que si on configure la nomenclature dans le fichier de paramétrage, on a plus la valeur par défaut ? Je vais vérifier ce point là.
C'est pas sur une nomenclature du coup mais sur les compteurs min/max en effet. Pour le moment quand l'input est affichée, par défaut les compteurs sont à 0
Du coup pour les commentaires, voir la note de version.
Pour les valeurs par défaut, fixé dans la 2.5.0 qui vient de sortir !
Deux remarques sur la version RC :
Sinon le reste fonctionne parfaitement (testé sur 3 téléphones : Android 13, 12 et 9)