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

Synchronisation incompléte #208

Open CGuillaume opened 1 year ago

CGuillaume commented 1 year ago

Version de l'application

Version d'Occtax-mobile affectée par le bug : 2.4.0 Version de GeoNature utilisée : 2.9.2

Terminal et Version Android

Marque et modèle du terminal : Samsung A22 Version d'Android : 13

Description du bug et comportement attendu

Bonjour, Je tente depuis plusieurs jours de déployer gn_mobile_occtax pour mon instance geonature.

Mais : 1 - lorsque je lance la synchronisation des données ça bloque à l'étape "nomenclature default values" et je n'arrive pas à comprendre pourquoi ? 2 - lorsque je veux saisir un relevé j'ai une erreur qui s'affiche "Echec lors du chargement des valeurs par défaut" (je pense que c'est lié et la résolution du premier point solutionnera celui-ci)

Merci pour votre aide.

Logs

15:49:20.826 INFO: [fr.geonature.occtax.MainApplication] starting fr.geonature.occtax2...
15:49:20.826 INFO: [fr.geonature.occtax.MainApplication] logs directory: '/storage/emulated/0/Android/data/fr.geonature.occtax2/logs'
15:49:20.826 INFO: [fr.geonature.occtax.MainApplication] internal storage: 'MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)'
15:49:20.827 INFO: [fr.geonature.occtax.MainApplication] external storage: 'MountPoint(mountPath=/storage/37F6-D96D, storageType=EXTERNAL)'
15:49:20.929 INFO: [fr.geonature.datasync.packageinfo.worker.CheckInputsToSynchronizeWorker] available inputs to synchronize: 0
15:49:21.234 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] loading app configuration...
15:49:21.235 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'...
15:49:21.238 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.nature-haute-savoie.fr', TaxHub: 'https://taxhub.nature-haute-savoie.fr')...
15:49:21.251 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] updating app configuration from 'https://geonature.nature-haute-savoie.fr'...
15:49:21.374 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps
15:49:21.659 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps (284ms, 1038-byte body)
15:49:21.663 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax2'...
15:49:21.750 INFO: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] updating app settings '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'
15:49:21.750 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'...
15:49:21.751 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.nature-haute-savoie.fr', TaxHub: 'https://taxhub.nature-haute-savoie.fr')...
15:49:21.753 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] app configuration successfully updated from 'https://geonature.nature-haute-savoie.fr'
15:49:21.755 INFO: [fr.geonature.occtax.ui.home.HomeActivity] reloading settings after update...
15:49:21.758 INFO: [fr.geonature.commons.settings.AppSettingsManagerImpl] loading settings from URI 'content://fr.geonature.occtax2.provider/settings/settings_occtax.json'...
15:49:21.769 INFO: [fr.geonature.occtax.settings.io.OnAppSettingsJsonReaderListenerImpl] input date settings loaded ('start': datetime, 'end': null)
15:49:21.771 INFO: [fr.geonature.occtax.ui.home.HomeActivity] app settings successfully loaded
15:49:21.799 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] no periodic synchronization configured: abort
15:49:24.012 INFO: [fr.geonature.commons.input.InputManagerImpl] input '226596752' deleted: true
15:49:25.957 INFO: [fr.geonature.commons.input.InputManagerImpl] input '226596765' deleted: true
15:49:27.748 INFO: [fr.geonature.commons.input.InputManagerImpl] input '226596832' deleted: true
15:49:28.906 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization...
15:49:28.969 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps
15:49:28.969 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax2'...
15:49:28.976 INFO: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] updating app settings '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'
15:49:28.980 INFO: [fr.geonature.commons.data.DatabaseModule] loading local database '/storage/emulated/0/Android/data/fr.geonature.occtax2/databases/data.db'...
15:49:29.002 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] starting local data synchronization from 'https://geonature.nature-haute-savoie.fr' (with additional data: true)...
15:49:29.034 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize dataset...
15:49:29.037 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/meta/datasets?fields=modules
15:49:29.048 INFO: [fr.geonature.datasync.packageinfo.worker.InputsSyncWorker] no inputs to synchronize for 'fr.geonature.occtax2'
15:49:30.309 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/meta/datasets?fields=modules (1271ms, 84997-byte body)
15:49:30.388 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] dataset to update: 117
15:49:30.455 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize users...
15:49:30.459 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/users/menu/1
15:49:30.495 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/users/menu/1 (35ms, 1374-byte body)
15:49:30.515 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] users to update: 12
15:49:30.531 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize taxonomy ranks...
15:49:30.534 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://taxhub.nature-haute-savoie.fr/api/taxref/regnewithgroupe2
15:49:31.284 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://taxhub.nature-haute-savoie.fr/api/taxref/regnewithgroupe2 (748ms, 776-byte body)
15:49:31.298 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] taxonomy ranks to update: 41
15:49:31.354 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize nomenclature types...
15:49:31.360 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/nomenclatures/nomenclatures/taxonomy
15:49:31.469 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/nomenclatures/nomenclatures/taxonomy (108ms, 381835-byte body)
15:49:31.657 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature types to update: 89
15:49:31.710 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature to update: 1070
15:49:31.720 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize nomenclature default values...
15:49:31.723 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures
15:49:31.752 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures (28ms, 282-byte body)
15:49:31.774 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature default values to update: 17
15:49:34.973 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps (6002ms, 1038-byte body)
15:54:03.051 INFO: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] loading input: 226598043
15:54:03.283 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql:
  SELECT nomenclatures."_id" AS nomenclatures__id, nomenclatures."code" AS nomenclatures_code, nomenclatures."hierarchy" AS nomenclatures_hierarchy, nomenclatures."default_label" AS nomenclatures_default_label, nomenclatures."type_id" AS nomenclatures_type_id, nomenclature_types."_id" AS nomenclature_types__id, nomenclature_types."mnemonic" AS nomenclature_types_mnemonic, nomenclature_types."default_label" AS nomenclature_types_default_label, default_nomenclatures."module" AS default_nomenclatures_module, default_nomenclatures."nomenclature_id" AS default_nomenclatures_nomenclature_id
  FROM nomenclatures nomenclatures
  JOIN nomenclature_types AS nomenclature_types ON nomenclature_types__id = nomenclatures_type_id
  JOIN default_nomenclatures AS default_nomenclatures ON default_nomenclatures_nomenclature_id = nomenclatures__id AND default_nomenclatures_module = ?
  ORDER BY nomenclatures_default_label ASC
  args: ['occtax']
CGuillaume commented 1 year ago

Voici mon fichier settings.json

{
  "area_observation_duration": 365,
  "sync": {
    "geonature_url": "https://geonature.nature-haute-savoie.fr",
    "taxhub_url": "https://taxhub.nature-haute-savoie.fr",
    "gn_application_id": 3,
    "observers_list_id": 1,
    "taxa_list_id": 101,
    "code_area_type": "M1",
    "page_size": 10000
  },
  "map": {
    "show_scale": true,
    "show_compass": true,
    "max_bounds": [
      [52.0, -6.0],
      [41.0, 9.0]
    ],
    "center": [46.0, 3.0],
    "start_zoom": 10.0,
    "min_zoom": 8.0,
    "max_zoom": 19.0,
    "min_zoom_editing": 12.0,
    "base_path": "Offline_maps",
    "layers": [
      {
        "source": "plan.mbtiles",
        "label": "IGN plan"
      },
      {
        "source": "ortho.mbtiles",
        "label": "IGN ortho"
      },
      {
        "label": "OpenStreetMap",
        "source": "https://a.tile.openstreetmap.org/",
        "properties": {
          "attribution": "© OSM contributors"
        }
      }
    ]
  },
  "input": {
    "date": {
      "enable_end_date": false,
      "enable_hours": true
    }
  }
}
camillemonchicourt commented 1 year ago

Je ne vois pas d'erreur mais n'ai pas de soucis sur notre GeoNature. @sgrimault, une piste ?

gildeluermoz commented 1 year ago

Je dirais qu'il manque justement la partie nomenclature dans le fichier settings.json @sgrimault dirat si elle est obligatoire ou pas mais il me semble plus lisible de la mettre afin de mieux visualiser ce que fait l'application sur toute cette partie.

DonovanMaillard commented 1 year ago

On dirait qu'il ne trouve pas de nomenclatures par défaut pour le module occtax ? est-ce qu'il y en a de définies ?

camillemonchicourt commented 1 year ago

Je ne pense pas que renseigner la partie nomenclature soit obligatoire, ce n'est pas le cas sur le GeoNature de démo : https://demo.geonature.fr/geonature/api/static/mobile/occtax/settings.json

Et justement, je pense que si on n'a rien à modifier sur cette partie, il ne faut vaut mieux pas la renseigner, pour bien avoir les valeurs par défaut, et surtout bénéficier des éventuelles évolutions de la configuration par défaut.

camillemonchicourt commented 1 year ago

On dirait qu'il ne trouve pas de nomenclatures par défaut pour le module occtax ? est-ce qu'il y en a de définies ?

Elles sont fournies par défaut quand on installe GeoNature, et en regardant la route interrogée, elle renvoie bien les valeurs par défaut : https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures

TheoLechemia commented 1 year ago

Dans les logs, c'est la table nomenclatures de la base SQLite locale qui est interrogé : FROM nomenclatures nomenclatures on ne voit pas non plus d'erreurs dans les logs.. la dernière ligne qui interroge les nomenclatures est en DEBUG, pas ERROR et la ligne 15:49:31.752 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures (28ms, 282-byte body) confirme ce que dit Camille, ça a l'air OK du côté de l'API GeoNature

sgrimault commented 1 year ago

Bonjour,

Je ne vois aucune erreur aussi pour ma part. Il n'y a aucune erreur remontée dans les logs. Les appels semblent bons (cf. https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures). @CGuillaume, vous avez la suite des logs ? Histoire de voir le déroulé de la synchronisation.

Pour information, l'attribut nomenclature dans le fichier de paramétrage est optionnel et c'est la configuration par défaut qui prime. Si cet attribut est renseigné, alors on rentre dans un mode de configuration "avancé", où la configuration de la nomenclature présente dans le fichier de paramétrage prend le dessus.

CGuillaume commented 1 year ago

@sgrimault il n'y a pas de suite dans le log, c'est bien ça le soucis. Le log de la synchronisation se termine à "nomenclature default values to update: 17" D'après ce que j'ai vu dans d'autre issus la suite serait les taxons, j'ai donc tenté de refaire une liste avec une dizaine de taxons dans Taxhub mais ça ne change rien.

Est-ce que ça pourrait venir de mon paramétrage d'occtax (non mobile) qui n'est pour le moment pas utilisé et avec les config par défaut ?

JeromeMaruejouls commented 1 year ago

Au cas où, essaie de raffraichir la VM taxonomie.vm_taxref_list_forautocomplete. J'ai eu un soucis un peu similaire (voir #206 ) avec une synchronisation des taxons qui s'arrétait sans message d'erreur. (bon ok, moi elle commencait quand même). Je n'avais pas raffraichi cette VM suite à une mise à jour taxref et c'est cela qui posait le problème.

sgrimault commented 1 year ago

@CGuillaume,

Et il n'y a pas d'autres fichiers de logs après celui remonté ? Dans l'hypothèse où la synchronisation se serait arrêtée suite à un crash quelconque, il est possible que la trace d'erreur soit du coup dans un autre fichier de log ultérieur à celui remonté.

CGuillaume commented 1 year ago

Bonjour à tous et merci pour vos réponses,

J'ai fait pas mal de test hier avec @cen-cgeier mais rien de concluant... voici donc un petit récap.

Version de l'application

Version d'Occtax-mobile affectée par le bug : 2.4.0 Version de GeoNature utilisée : 2.9.2 Version de Usershub : 2.3.3 j'était en 2.31 et je suis monté en version hier Version de Taxhub : 1.9.4 je ne peux pas monter plus haut avec ma version de GeoNature qui est coincé à cause du module ZH.

Description du bug

Toujours le même, la synchronisation s'arrête après avoir fait "nomenclature default values to update: 17" sans message d'erreur dans les logs. On a regarder dans les logs de @cen-cgeier, la suite c'est la synchronisation des taxons.

Ce qu'on a tenté hier

Logs

Pour @sgrimault j'ai tout désinstallé, puis réinstallé du mobile pour avoir un log clean et voici la totalité du log pour les actions suivantes :

J'avoue que je sèche sur le problème... Merci encore pour votre aide.

11:35:09.226 INFO: [fr.geonature.occtax.MainApplication] starting fr.geonature.occtax2...
11:35:09.227 INFO: [fr.geonature.occtax.MainApplication] logs directory: '/storage/emulated/0/Android/data/fr.geonature.occtax2/logs'
11:35:09.227 INFO: [fr.geonature.occtax.MainApplication] internal storage: 'MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)'
11:35:09.228 INFO: [fr.geonature.occtax.MainApplication] external storage: 'MountPoint(mountPath=/storage/37F6-D96D, storageType=EXTERNAL)'
11:35:09.346 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] loading app configuration...
11:35:09.347 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'...
11:35:09.347 WARN: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json' not found
11:35:09.493 WARN: [fr.geonature.occtax.ui.home.HomeActivity] failed to load settings from source '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'
11:35:09.614 INFO: [fr.geonature.datasync.packageinfo.worker.CheckInputsToSynchronizeWorker] available inputs to synchronize: 0
11:35:20.499 INFO: [fr.geonature.datasync.features.settings.usecase.GetAppSettingsFromRemoteUseCase] loading app configuration from 'https://geonature.nature-haute-savoie.fr'...
11:35:20.500 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.nature-haute-savoie.fr')...
11:35:20.519 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps
11:35:20.697 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps (178ms, 1350-byte body)
11:35:20.702 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax2'...
11:35:20.709 INFO: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] updating app settings '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'
11:35:20.709 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'...
11:35:20.711 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.nature-haute-savoie.fr', TaxHub: 'https://taxhub.nature-haute-savoie.fr')...
11:35:20.714 INFO: [fr.geonature.datasync.features.settings.usecase.GetAppSettingsFromRemoteUseCase] app configuration successfully loaded from 'https://geonature.nature-haute-savoie.fr'
11:35:20.753 INFO: [fr.geonature.datasync.features.settings.usecase.GetAppSettingsFromRemoteUseCase] loading app configuration from 'https://geonature.nature-haute-savoie.fr'...
11:35:20.754 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.nature-haute-savoie.fr')...
11:35:20.757 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps
11:35:20.865 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps (107ms, 1350-byte body)
11:35:20.867 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax2'...
11:35:20.870 INFO: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] updating app settings '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'
11:35:20.871 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'...
11:35:20.873 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.nature-haute-savoie.fr', TaxHub: 'https://taxhub.nature-haute-savoie.fr')...
11:35:20.875 INFO: [fr.geonature.datasync.features.settings.usecase.GetAppSettingsFromRemoteUseCase] app configuration successfully loaded from 'https://geonature.nature-haute-savoie.fr'
11:35:20.875 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization...
11:35:20.878 INFO: [fr.geonature.commons.settings.AppSettingsManagerImpl] loading settings from URI 'content://fr.geonature.occtax2.provider/settings/settings_occtax.json'...
11:35:20.881 INFO: [fr.geonature.occtax.settings.io.OnAppSettingsJsonReaderListenerImpl] input date settings loaded ('start': datetime, 'end': null)
11:35:20.882 INFO: [fr.geonature.occtax.ui.home.HomeActivity] app settings successfully loaded
11:35:20.905 INFO: [fr.geonature.commons.data.DatabaseModule] loading local database '/storage/emulated/0/Android/data/fr.geonature.occtax2/databases/data.db'...
11:35:20.921 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] starting local data synchronization from 'https://geonature.nature-haute-savoie.fr' (with additional data: true)...
11:35:20.923 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] no periodic synchronization configured: abort
11:35:20.938 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize dataset...
11:35:20.940 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/meta/datasets?fields=modules
11:35:21.039 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 401 UNAUTHORIZED https://geonature.nature-haute-savoie.fr/api/meta/datasets?fields=modules (98ms, 276-byte body)
11:35:21.067 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] local data synchronization finished with failed tasks in 149ms
11:35:21.079 INFO: [fr.geonature.occtax.ui.home.HomeActivity] not connected (HTTP error code: 401), redirect to fr.geonature.datasync.ui.login.LoginActivity
11:35:21.151 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'...
11:35:21.206 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.nature-haute-savoie.fr', TaxHub: 'https://taxhub.nature-haute-savoie.fr')...
11:35:25.103 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> POST https://geonature.nature-haute-savoie.fr/api/auth/login (60-byte body)
11:35:25.497 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/auth/login (393ms, unknown-length body)
11:35:25.501 INFO: [fr.geonature.datasync.auth.AuthManagerImpl] successfully authenticated, login expiration date: Fri Mar 17 10:35:25 GMT+01:00 2023
11:35:25.529 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization...
11:35:25.576 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] starting local data synchronization from 'https://geonature.nature-haute-savoie.fr' (with additional data: true)...
11:35:25.587 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize dataset...
11:35:25.589 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/meta/datasets?fields=modules
11:35:25.776 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/meta/datasets?fields=modules (186ms, 84997-byte body)
11:35:26.169 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] dataset to update: 117
11:35:26.239 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize users...
11:35:26.241 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/users/menu/1
11:35:26.271 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/users/menu/1 (29ms, 1495-byte body)
11:35:26.288 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] users to update: 13
11:35:26.296 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize taxonomy ranks...
11:35:26.298 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://taxhub.nature-haute-savoie.fr/api/taxref/regnewithgroupe2
11:35:27.043 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://taxhub.nature-haute-savoie.fr/api/taxref/regnewithgroupe2 (744ms, 776-byte body)
11:35:27.050 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] taxonomy ranks to update: 41
11:35:27.060 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize nomenclature types...
11:35:27.063 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/nomenclatures/nomenclatures/taxonomy
11:35:27.170 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/nomenclatures/nomenclatures/taxonomy (106ms, 381835-byte body)
11:35:27.564 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature types to update: 89
11:35:27.591 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature to update: 1070
11:35:27.597 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize nomenclature default values...
11:35:27.598 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures
11:35:27.630 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures (30ms, 282-byte body)
11:35:27.646 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature default values to update: 17
11:35:32.573 INFO: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] loading input: 226841732
11:35:32.730 INFO: [fr.geonature.maps.util.ManageExternalStoragePermissionLifecycleObserver] ask permission to have access to manage all files...
11:35:32.810 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql:
  SELECT nomenclatures."_id" AS nomenclatures__id, nomenclatures."code" AS nomenclatures_code, nomenclatures."hierarchy" AS nomenclatures_hierarchy, nomenclatures."default_label" AS nomenclatures_default_label, nomenclatures."type_id" AS nomenclatures_type_id, nomenclature_types."_id" AS nomenclature_types__id, nomenclature_types."mnemonic" AS nomenclature_types_mnemonic, nomenclature_types."default_label" AS nomenclature_types_default_label, default_nomenclatures."module" AS default_nomenclatures_module, default_nomenclatures."nomenclature_id" AS default_nomenclatures_nomenclature_id
  FROM nomenclatures nomenclatures
  JOIN nomenclature_types AS nomenclature_types ON nomenclature_types__id = nomenclatures_type_id
  JOIN default_nomenclatures AS default_nomenclatures ON default_nomenclatures_nomenclature_id = nomenclatures__id AND default_nomenclatures_module = ?
  ORDER BY nomenclatures_default_label ASC
  args: ['occtax']
11:36:04.346 INFO: [fr.geonature.maps.util.ManageExternalStoragePermissionLifecycleObserver] request manage external storage permission granted
11:36:04.370 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql:
  SELECT nomenclatures."_id" AS nomenclatures__id, nomenclatures."code" AS nomenclatures_code, nomenclatures."hierarchy" AS nomenclatures_hierarchy, nomenclatures."default_label" AS nomenclatures_default_label, nomenclatures."type_id" AS nomenclatures_type_id, nomenclature_types."_id" AS nomenclature_types__id, nomenclature_types."mnemonic" AS nomenclature_types_mnemonic, nomenclature_types."default_label" AS nomenclature_types_default_label, default_nomenclatures."module" AS default_nomenclatures_module, default_nomenclatures."nomenclature_id" AS default_nomenclatures_nomenclature_id
  FROM nomenclatures nomenclatures
  JOIN nomenclature_types AS nomenclature_types ON nomenclature_types__id = nomenclatures_type_id
  JOIN default_nomenclatures AS default_nomenclatures ON default_nomenclatures_nomenclature_id = nomenclatures__id AND default_nomenclatures_module = ?
  ORDER BY nomenclatures_default_label ASC
  args: ['occtax']
11:36:11.229 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization...
11:36:11.293 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax2'...
11:36:11.293 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps
11:36:11.293 WARN: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] undefined app settings to update from 'fr.geonature.occtax2'
11:36:11.295 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] starting local data synchronization from 'https://geonature.nature-haute-savoie.fr' (with additional data: true)...
11:36:11.319 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize dataset...
11:36:11.321 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/meta/datasets?fields=modules
11:36:11.395 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/gn_commons/t_mobile_apps (101ms, 1350-byte body)
11:36:11.476 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/meta/datasets?fields=modules (155ms, 84997-byte body)
11:36:11.610 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] dataset to update: 117
11:36:11.628 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize users...
11:36:11.629 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/users/menu/1
11:36:11.666 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/users/menu/1 (36ms, 1495-byte body)
11:36:11.685 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] users to update: 13
11:36:11.694 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize taxonomy ranks...
11:36:11.696 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://taxhub.nature-haute-savoie.fr/api/taxref/regnewithgroupe2
11:36:12.422 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://taxhub.nature-haute-savoie.fr/api/taxref/regnewithgroupe2 (724ms, 776-byte body)
11:36:12.433 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] taxonomy ranks to update: 41
11:36:12.484 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize nomenclature types...
11:36:12.486 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/nomenclatures/nomenclatures/taxonomy
11:36:12.609 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/nomenclatures/nomenclatures/taxonomy (122ms, 381835-byte body)
11:36:13.079 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature types to update: 89
11:36:13.135 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature to update: 1070
11:36:13.147 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] synchronize nomenclature default values...
11:36:13.149 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] --> GET https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures
11:36:13.187 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] <-- 200 OK https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures (36ms, 282-byte body)
11:36:13.193 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] nomenclature default values to update: 17
sgrimault commented 1 year ago

Bonjour @CGuillaume, Serait-il possible que je puisse avoir un compte utilisateur sur instance ? Ainsi je pourrais faire quelques tests de mon coté. Merci :)

CGuillaume commented 1 year ago

Bonjour @CGuillaume, Serait-il possible que je puisse avoir un compte utilisateur sur instance ? Ainsi je pourrais faire quelques tests de mon coté. Merci :)

Oui. https://geonature.nature-haute-savoie.fr/ id et mdp : sgrimault

Bon courage :)

sgrimault commented 1 year ago

Je pense avoir trouvé le problème avec une incohérence entre les données reçues : La route GET -> https://geonature.nature-haute-savoie.fr/api/occtax/defaultNomenclatures retourne notamment la valeur "TECHNIQUE_OBS": 316 sauf que la route GET -> https://geonature.nature-haute-savoie.fr/api/nomenclatures/nomenclatures/taxonomy ne comporte pas d'identifiant 316 comme valeur de nomenclature pour "TECHNIQUE_OBS". Côté application "Occtax", il y a une erreur silencieuse qui se produit lors de l'insertion des valeurs en base.

De mon côté, je vais compléter les filtres et vérifications pour mieux garantir la cohérence des données avant insertion.

camillemonchicourt commented 1 year ago

OK peut-être encore un reste du renommage douloureux de méthode d'observation en technique d'observation (ou l'inverse je ne sais plus, tellement ce truc a été une galère....)

DonovanMaillard commented 1 year ago

Les items de meth_obs sont allés alimenter le nouveau champs sinp technique_obs, mais on a gardé la mnemonique "meth" pour les techniques car utilisée partout normalement...

En tous cas c'est bizarre, le mobile et la bdd ne devraient pas connaitre "TECHNIQUE_OBS", qui correspond à la mnemonique d'un champs désormais obsolète.

CGuillaume commented 1 year ago

Suite à vos messages j'ai enquêté sur cette histoire de "TECHNIQUE_OBS": 316 et c'est bien lui qui bloque. J'ai effectivement il y a quelques jours fait une mise à jour de ma table "ref_nomenclatures.t_nomenclatures" pour mettre à jour avec la dernière version des techniques d'observations (id_type = 100) de Campanule et j'ai désactiver les anciennes, dont la 316... inscrite par défaut pour l'application. Tout fonctionne en la réactivant.

Maintenant questions :

camillemonchicourt commented 1 year ago

C'est un galère cette histoire de méthode d'observation et de technique d'observation. On a du changer tout ça au moment du passage à la V2 du standard Occurrences de taxons. Le sujet est expliqué ici - https://github.com/PnX-SI/GeoNature/issues/1208#issuecomment-755410473

Il faut peut-être maintenant aller plus et clarifier/trancher ce sujet pour de bon.

Concernant les valeurs par défaut c'est un peu complexe actuellement. Surement trop complexe car il y en a définis :

Pas inintéressant de pouvoir les différencier, mais certainement complexe et peu utile

En tout cas, là c'est bien dans pr_occtax.defaults_nomenclatures_value qu'il faut que tu fasses la modification.

PS : Si il faut mettre à jour les nomenclatures, tu peux le faire localement dans ta BDD, mais l'idéal est de l faire globalement dans GeoNature pour tous, comme ça, on diverge le moins possible. Car si ensuite on met ensuite à jour ces nomenclatures globalement, tu devras faire attention au fait que tu les as déjà miss à jour localement.

DonovanMaillard commented 1 year ago

Je laisse le ticket ouvert si ca va à tout le monde. Dans ce cas précis, il faudrait que l'application puisse gérer correctement.

On m'envoie un ID qui correspond à rien ou à une nomenclature inactive => pas de valeur par défaut, le champs reste blanc. Ca éviterait de bloquer totalement le fonctionnement de l'appli...