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

[2.4.1 RC] Valeur dénombrement par défault et champs commentaire obs #209

Closed JeromeMaruejouls closed 1 year ago

JeromeMaruejouls commented 1 year ago

Deux remarques sur la version RC :

Sinon le reste fonctionne parfaitement (testé sur 3 téléphones : Android 13, 12 et 9)

DonovanMaillard commented 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.

sgrimault commented 1 year ago

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 :

sgrimault commented 1 year ago

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).

DonovanMaillard commented 1 year ago

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) ?

sgrimault commented 1 year ago

À 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"
  }
]
sgrimault commented 1 year ago

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à.

DonovanMaillard commented 1 year ago

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

Screenshot_20230321_212450_Occtax.jpg

DonovanMaillard commented 1 year ago

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 !