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

Erreur Ajout relevé #227

Closed iulianpn closed 1 year ago

iulianpn commented 1 year ago

Bonjour à tous,

Version de l'application

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

Terminal et Version Android

Marque et modèle du terminal : Xiaomi MI8 Version d'Android : 10

Description du bug et comportement attendu

Message d'erreur à l'ajout d'un Relevé.

Comment reproduire

Mise à jour depuis la version 2.4 vers la 2.6.1 Connexion à l'application OK mais quand j'essaie d'ajouter un relevé, j'ai un message : Echec lors du chargement des valeurs par défaut ; le bouton Suivant reste grisé.

PS : j'ai ajouté l'autorisation de d'accès à service de localisation pour l'app.

Logs

18:06:15.769 INFO: [fr.geonature.occtax.MainApplication] starting fr.geonature.occtax2... 18:06:15.769 INFO: [fr.geonature.occtax.MainApplication] logs directory: '/storage/emulated/0/Android/data/fr.geonature.occtax2/logs' 18:06:15.769 INFO: [fr.geonature.occtax.MainApplication] internal storage: 'MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)' 18:06:15.769 INFO: [fr.geonature.occtax.MainApplication] external storage: 'null' 18:06:15.829 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] loading app configuration... 18:06:15.830 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'... 18:06:15.830 WARN: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json' not found 18:06:15.836 INFO: [fr.geonature.commons.data.DatabaseModule] loading local database '/storage/emulated/0/Android/data/fr.geonature.occtax2/databases/data.db'... 18:06:15.850 WARN: [fr.geonature.occtax.ui.home.HomeActivity] failed to load settings from source '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json' 18:06:15.850 INFO: [fr.geonature.occtax.ui.home.HomeActivity] try to reload settings from 'https://geonat.xxxxxxxx.fr/geonature'... 18:06:15.851 INFO: [fr.geonature.datasync.features.settings.usecase.GetAppSettingsFromRemoteUseCase] loading app configuration from 'https://geonat.xxxxxxxx.fr/geonature'... 18:06:15.851 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonat.xxxxxxxx.fr/geonature')... 18:06:15.860 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/gn_commons/t_mobile_apps 18:06:15.939 INFO: [fr.geonature.datasync.packageinfo.worker.CheckInputsToSynchronizeWorker] available inputs to synchronize: 0 18:06:16.045 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/gn_commons/t_mobile_apps (184ms, 3540-byte body) 18:06:16.048 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax2'... 18:06:16.051 INFO: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] updating app settings '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json' 18:06:16.051 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'... 18:06:16.052 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonat.xxxxxxxx.fr/geonature', TaxHub: 'https://geonat.xxxxxxxx.fr/taxhub')... 18:06:16.053 INFO: [fr.geonature.datasync.features.settings.usecase.GetAppSettingsFromRemoteUseCase] app configuration successfully loaded from 'https://geonat.xxxxxxxx.fr/geonature' 18:06:16.054 INFO: [fr.geonature.commons.settings.AppSettingsManagerImpl] loading settings from URI 'content://fr.geonature.occtax2.provider/settings/settings_occtax.json'... 18:06:16.055 INFO: [fr.geonature.occtax.settings.io.OnAppSettingsJsonReaderListenerImpl] input date settings loaded ('start': datetime, 'end': datetime) 18:06:16.057 INFO: [fr.geonature.occtax.ui.home.HomeActivity] app settings successfully loaded 18:06:16.067 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] configure data sync periodic worker (repeat interval: 7d, with additional data: true)... 18:06:24.787 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'... 18:06:24.808 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonat.xxxxxxxx.fr/geonature', TaxHub: 'https://geonat.xxxxxxxx.fr/taxhub')... 18:06:43.723 INFO: [fr.geonature.datasync.api.ClientKt] --> POST https://geonat.xxxxxxxx.fr/geonature/api/auth/login (62-byte body) 18:06:44.292 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/auth/login (567ms, unknown-length body) 18:06:44.302 INFO: [fr.geonature.datasync.auth.AuthManagerImpl] successfully authenticated, login expiration date: Mon Jun 26 16:06:45 GMT+02:00 2023 18:06:44.364 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization... 18:06:44.452 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] starting local data synchronization from 'https://geonat.xxxxxxxx.fr/geonature' (with additional data: true)... 18:06:44.453 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize dataset... 18:06:44.454 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/meta/datasets?fields=modules 18:06:44.551 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/meta/datasets?fields=modules (95ms, 1825-byte body) 18:06:44.552 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] dataset to update: 2 18:06:44.554 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize users... 18:06:44.555 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/users/menu/1 18:06:44.602 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/users/menu/1 (47ms, 6235-byte body) 18:06:44.604 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] users to update: 55 18:06:44.606 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize taxonomy ranks... 18:06:44.607 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/regnewithgroupe2 18:06:45.754 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/regnewithgroupe2 (1146ms, 786-byte body) 18:06:45.767 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxonomy ranks to update: 41 18:06:45.778 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize nomenclature types... 18:06:45.785 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/nomenclatures/nomenclatures/taxonomy 18:06:45.899 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/nomenclatures/nomenclatures/taxonomy (113ms, 190366-byte body) 18:06:45.999 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature types to update: 46 18:06:46.031 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature to update: 495 18:06:46.034 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize nomenclature default values... 18:06:46.036 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/occtax/defaultNomenclatures 18:06:46.093 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/occtax/defaultNomenclatures (56ms, 211-byte body) 18:06:46.098 WARN: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] no default nomenclature value found with mnemonic 'TYP_GRP' 18:06:46.099 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature default values to update: 12 18:06:46.169 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize taxa... 18:06:46.171 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=0 18:06:46.885 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=0 (713ms, 3380799-byte body) 18:06:48.186 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 10000 18:06:48.187 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=10000 18:06:48.379 INFO: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] loading observation record: null 18:06:48.379 INFO: [fr.geonature.occtax.features.record.presentation.ObservationRecordViewModel] loading default nomenclature values from record '235588008'... 18:06:48.380 INFO: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] loading default nomenclature values from record '235588008'... 18:06:48.459 INFO: [fr.geonature.maps.util.CheckPermissionLifecycleObserver] permission 'android.permission.READ_EXTERNAL_STORAGE' already granted 18:06:48.503 ERROR: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] failed to load default nomenclature values from record '235588008 18:06:48.503 ERROR: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] no default nomenclature values found for observation record with ID '235588008': fr.geonature.occtax.features.record.error.ObservationRecordException$NoDefaultNomenclatureValuesFoundException: no default nomenclature values found for observation record with ID '235588008' at fr.geonature.occtax.features.record.usecase.SetDefaultNomenclatureValuesUseCase.run-gIAlu-s(SetDefaultNomenclatureValuesUseCase.kt:40) at fr.geonature.occtax.features.record.usecase.SetDefaultNomenclatureValuesUseCase$run$1.invokeSuspend(Unknown Source:15) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7562) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 18:06:48.985 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=10000 (797ms, 3417938-byte body) 18:06:49.972 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 20000 18:06:49.974 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=20000 18:06:50.722 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=20000 (747ms, 3318690-byte body) 18:06:51.322 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT observers."_id" AS observersid, observers."lastname" AS observers_lastname, observers."firstname" AS observers_firstname FROM observers observers ORDER BY observers_lastname COLLATE NOCASE ASC, observers_firstname COLLATE NOCASE ASC args: [] 18:06:52.080 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 30000 18:06:52.081 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=30000 18:06:52.928 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=30000 (846ms, 3337373-byte body) 18:06:54.082 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 40000 18:06:54.083 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=40000 18:06:54.778 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=40000 (694ms, 746227-byte body) 18:06:55.047 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 42242 18:06:56.055 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT taxa."_id" AS taxa__id, taxa."name" AS taxa_name, taxa."kingdom" AS taxa_kingdom, taxa."group" AS taxa_group, taxa."name_common" AS taxa_name_common, taxa."description" AS taxa_description, taxa."rank" AS taxa_rank FROM taxa taxa args: [] 18:06:56.056 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] deleting orphaned taxa... 18:06:56.596 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] orphaned taxa deleted: 0 18:06:56.597 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize taxa additional data... 18:06:56.598 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/synthese/color_taxon?code_area_type=M1&limit=10000&offset=0 18:06:56.792 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/synthese/color_taxon?code_area_type=M1&limit=10000&offset=0 (193ms, 3-byte body) 18:06:56.893 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] local data synchronization successfully finished in 12488ms 18:06:58.493 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT observers."_id" AS observersid, observers."lastname" AS observers_lastname, observers."firstname" AS observers_firstname FROM observers observers ORDER BY observers_lastname COLLATE NOCASE ASC, observers_firstname COLLATE NOCASE ASC args: [] 18:07:03.922 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT observers."_id" AS observersid, observers."lastname" AS observers_lastname, observers."firstname" AS observers_firstname FROM observers observers WHERE ((observers_lastname GLOB ? OR observers_firstname GLOB ?)) ORDER BY observers_lastname COLLATE NOCASE ASC, observers_firstname COLLATE NOCASE ASC args: ['[nñNÑ]', '[nñNÑ]'] 18:07:04.097 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT observers."_id" AS observers__id, observers."lastname" AS observers_lastname, observers."firstname" AS observers_firstname FROM observers observers WHERE ((observers_lastname GLOB ? OR observers_firstname GLOB ?)) ORDER BY observers_lastname COLLATE NOCASE ASC, observers_firstname COLLATE NOCASE ASC args: ['[nñNÑ][aáàäâãAÁÀÄÂÃ]', '[nñNÑ][aáàäâãAÁÀÄÂÃ]'] 18:07:04.247 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT observers."_id" AS observersid, observers."lastname" AS observers_lastname, observers."firstname" AS observers_firstname FROM observers observers WHERE ((observers_lastname GLOB ? OR observers_firstname GLOB ?)) ORDER BY observers_lastname COLLATE NOCASE ASC, observers_firstname COLLATE NOCASE ASC args: ['[nñNÑ][aáàäâãAÁÀÄÂÃ][iíìïîĩIÍÌÏÎĨ]', '[nñNÑ][aáàäâãAÁÀÄÂÃ][iíìïîĩIÍÌÏÎĨ]'] 18:07:05.405 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT observers."_id" AS observersid, observers."lastname" AS observers_lastname, observers."firstname" AS observers_firstname FROM observers observers WHERE ((observers_lastname GLOB ? OR observers_firstname GLOB ?)) ORDER BY observers_lastname COLLATE NOCASE ASC, observers_firstname COLLATE NOCASE ASC args: ['[nñNÑ][aáàäâãAÁÀÄÂÃ][iíìïîĩIÍÌÏÎĨ]', '[nñNÑ][aáàäâãAÁÀÄÂÃ][iíìïîĩIÍÌÏÎĨ]'] 18:07:08.124 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT dataset."_id" AS dataset__id, dataset."module" AS dataset_module, dataset."name" AS dataset_name, dataset."description" AS dataset_description, dataset."active" AS dataset_active, dataset."created_at" AS dataset_created_at FROM dataset dataset WHERE (dataset_module = ?) AND (dataset_active = 1) ORDER BY dataset_name COLLATE NOCASE ASC args: ['occtax'] 18:07:16.164 INFO: [fr.geonature.datasync.packageinfo.worker.CheckInputsToSynchronizeWorker] available inputs to synchronize: 0 18:07:45.481 INFO: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] loading observation record: null 18:07:45.481 INFO: [fr.geonature.occtax.features.record.presentation.ObservationRecordViewModel] loading default nomenclature values from record '235588065'... 18:07:45.482 INFO: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] loading default nomenclature values from record '235588065'... 18:07:45.535 INFO: [fr.geonature.maps.util.CheckPermissionLifecycleObserver] permission 'android.permission.READ_EXTERNAL_STORAGE' already granted 18:07:45.607 ERROR: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] failed to load default nomenclature values from record '235588065 18:07:45.607 ERROR: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] no default nomenclature values found for observation record with ID '235588065': fr.geonature.occtax.features.record.error.ObservationRecordException$NoDefaultNomenclatureValuesFoundException: no default nomenclature values found for observation record with ID '235588065' at fr.geonature.occtax.features.record.usecase.SetDefaultNomenclatureValuesUseCase.run-gIAlu-s(SetDefaultNomenclatureValuesUseCase.kt:40) at fr.geonature.occtax.features.record.usecase.SetDefaultNomenclatureValuesUseCase$run$1.invokeSuspend(Unknown Source:15) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7562) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 18:07:48.603 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT observers."_id" AS observersid, observers."lastname" AS observers_lastname, observers."firstname" AS observers_firstname FROM observers observers ORDER BY observers_lastname COLLATE NOCASE ASC, observers_firstname COLLATE NOCASE ASC args: [] 18:07:50.069 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT observers."_id" AS observers__id, observers."lastname" AS observers_lastname, observers."firstname" AS observers_firstname FROM observers observers ORDER BY observers_lastname COLLATE NOCASE ASC, observers_firstname COLLATE NOCASE ASC args: [] 18:07:52.475 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT dataset."_id" AS datasetid, dataset."module" AS dataset_module, dataset."name" AS dataset_name, dataset."description" AS dataset_description, dataset."active" AS dataset_active, dataset."created_at" AS dataset_created_at FROM dataset dataset WHERE (dataset_module = ?) AND (dataset_active = 1) ORDER BY dataset_name COLLATE NOCASE ASC args: ['occtax'] 18:08:03.362 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization... 18:08:03.457 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] starting local data synchronization from 'https://geonat.xxxxxxxx.fr/geonature' (with additional data: true)... 18:08:03.458 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize dataset... 18:08:03.459 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/meta/datasets?fields=modules 18:08:03.654 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/meta/datasets?fields=modules (194ms, 1825-byte body) 18:08:03.670 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] dataset to update: 2 18:08:03.674 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize users... 18:08:03.675 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/users/menu/1 18:08:03.737 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/users/menu/1 (61ms, 6235-byte body) 18:08:03.749 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] users to update: 55 18:08:03.755 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize taxonomy ranks... 18:08:03.757 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/regnewithgroupe2 18:08:04.911 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/regnewithgroupe2 (1153ms, 786-byte body) 18:08:04.924 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxonomy ranks to update: 41 18:08:04.943 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize nomenclature types... 18:08:04.945 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/nomenclatures/nomenclatures/taxonomy 18:08:05.145 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/nomenclatures/nomenclatures/taxonomy (199ms, 190366-byte body) 18:08:05.271 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature types to update: 46 18:08:05.302 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature to update: 495 18:08:05.304 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize nomenclature default values... 18:08:05.307 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/occtax/defaultNomenclatures 18:08:05.362 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/occtax/defaultNomenclatures (54ms, 211-byte body) 18:08:05.375 WARN: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] no default nomenclature value found with mnemonic 'TYP_GRP' 18:08:05.376 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature default values to update: 12 18:08:05.444 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize taxa... 18:08:05.445 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=0 18:08:06.241 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=0 (796ms, 3380799-byte body) 18:08:07.517 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 10000 18:08:07.519 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=10000 18:08:08.288 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=10000 (769ms, 3417938-byte body) 18:08:09.429 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 20000 18:08:09.430 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=20000 18:08:10.238 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=20000 (806ms, 3318690-byte body) 18:08:11.185 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 30000 18:08:11.186 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=30000 18:08:12.082 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=30000 (895ms, 3337373-byte body) 18:08:13.140 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 40000 18:08:13.141 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=40000 18:08:13.720 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/taxhub/api/taxref/allnamebylist/300?limit=10000&offset=40000 (578ms, 746227-byte body) 18:08:13.946 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxa to update: 42242 18:08:14.952 DEBUG: [fr.geonature.commons.data.helper.SQLiteSelectQueryBuilder] sql: SELECT taxa."_id" AS taxaid, taxa."name" AS taxa_name, taxa."kingdom" AS taxa_kingdom, taxa."group" AS taxa_group, taxa."name_common" AS taxa_name_common, taxa."description" AS taxa_description, taxa."rank" AS taxa_rank FROM taxa taxa args: [] 18:08:14.955 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] deleting orphaned taxa... 18:08:15.458 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] orphaned taxa deleted: 0 18:08:15.459 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize taxa additional data... 18:08:15.460 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonat.xxxxxxxx.fr/geonature/api/synthese/color_taxon?code_area_type=M1&limit=10000&offset=0 18:08:15.620 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonat.xxxxxxxx.fr/geonature/api/synthese/color_taxon?code_area_type=M1&limit=10000&offset=0 (160ms, 3-byte body) 18:08:15.744 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] local data synchronization successfully finished in 12312ms 18:08:25.363 INFO: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] loading observation record: null 18:08:25.363 INFO: [fr.geonature.occtax.features.record.presentation.ObservationRecordViewModel] loading default nomenclature values from record '235588105'... 18:08:25.364 INFO: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] loading default nomenclature values from record '235588105'... 18:08:25.414 INFO: [fr.geonature.maps.util.CheckPermissionLifecycleObserver] permission 'android.permission.READ_EXTERNAL_STORAGE' already granted 18:08:25.455 ERROR: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] failed to load default nomenclature values from record '235588105 18:08:25.455 ERROR: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] no default nomenclature values found for observation record with ID '235588105': fr.geonature.occtax.features.record.error.ObservationRecordException$NoDefaultNomenclatureValuesFoundException: no default nomenclature values found for observation record with ID '235588105' at fr.geonature.occtax.features.record.usecase.SetDefaultNomenclatureValuesUseCase.run-gIAlu-s(SetDefaultNomenclatureValuesUseCase.kt:40) at fr.geonature.occtax.features.record.usecase.SetDefaultNomenclatureValuesUseCase$run$1.invokeSuspend(Unknown Source:15) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7562) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 18:11:28.095 INFO: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] loading observation record: null 18:11:28.096 INFO: [fr.geonature.occtax.features.record.presentation.ObservationRecordViewModel] loading default nomenclature values from record '235588288'... 18:11:28.096 INFO: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] loading default nomenclature values from record '235588288'... 18:11:28.146 INFO: [fr.geonature.maps.util.CheckPermissionLifecycleObserver] permission 'android.permission.READ_EXTERNAL_STORAGE' already granted 18:11:28.206 ERROR: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] failed to load default nomenclature values from record '235588288 18:11:28.206 ERROR: [fr.geonature.occtax.ui.input.InputPagerFragmentActivity] no default nomenclature values found for observation record with ID '235588288': fr.geonature.occtax.features.record.error.ObservationRecordException$NoDefaultNomenclatureValuesFoundException: no default nomenclature values found for observation record with ID '235588288' at fr.geonature.occtax.features.record.usecase.SetDefaultNomenclatureValuesUseCase.run-gIAlu-s(SetDefaultNomenclatureValuesUseCase.kt:40) at fr.geonature.occtax.features.record.usecase.SetDefaultNomenclatureValuesUseCase$run$1.invokeSuspend(Unknown Source:15) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7562) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

Merci pour vos idées et votre aide.

camillemonchicourt commented 1 year ago

OK il ne trouve pas une nomenclature par défaut. Je ne sais pas pourquoi.

Il faudrait voir ce que renvoie la route GeoNature des nomenclatures par défaut ? Et si vous avez changé des valeurs de nomenclature par défaut dans la BDD de GeoNature au niveau de Occtax ?

iulianpn commented 1 year ago

Effectivement j'ai supprimé quelques nomenclatures qui étaient installées par défaut. J'aimerai restaurer les tables mais je ne connait pas les correspondances. Pouvez-vous me les indiquer ?

camillemonchicourt commented 1 year ago

Aille c'est risqué de faire ça, et ce n'est donc pas un bug d'occtax-mobile.

En effet on voit dans les logs :

https://geonat.xxxxxxxx.fr/geonature/api/occtax/defaultNomenclatures (56ms, 211-byte body) 18:06:46.098 WARN: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] no default nomenclature value found with mnemonic 'TYP_GRP'.

Ou encore :

18:06:48.503 ERROR: [fr.geonature.occtax.features.record.usecase.EditObservationRecordUseCase] failed to load default nomenclature values from record '235588008'.

Bon, si ce n'est pas déjà le cas, on pourrait imaginer que l'application ne plante pas si jamais elle n'arrive pas à récupérer certaines valeurs par défaut de nomenclatures, car ce n'est pas censé être bloquant. Sauf peut-être pour certains champs qui doivent être posté mais ne sont pas proposés à la saisie ?

iulianpn commented 1 year ago

Effectivement c'est risque ....mais nous ne sommes pas en production et je suis de même avis que ce n'est pas un bug d'occtax-mobile. J'ai également supprimé sur le terminal quelques relevés nos synchronisés ....d'ou peut-être la trace du record '235588008'....mais au niveau app mobile j'ai desinstallé et reinstallé avec un reboot de l'android entre deux ; y'a t'il un cache de l'app autre part que dans /android/data/fr.geonature.occtax2 ?

default_nomenclature_route_geonature

Voici le retour de ma route par défaut pour les nomenclatures.

iulianpn commented 1 year ago

Bonjour à tous,

Après investigation, c'est la nomenclature avec l'id 129 - Type de regroupement qui posait problème car nous l'avons désactivé dans la partie admin ; en la reactivant tout est rentré dans l'ordre.

Je ne sais pas si c'est normal qu'en désactivant une nomenclature le fonctionnement de l'appli mobile est bloqué, mais je remonte l'information.

Je reste dispo si besoin d'infos complementaires.

Bonne journée

camillemonchicourt commented 1 year ago

OK merci pour ces éléments. Tant mieux si vous les avez désactivé et non supprimé !

Comme évoqué précédemment, ce serait bien que si on n'arrive pas à récupérer la valeur par défaut d'une nomenclature, cela ne bloque pas la saisie. Mais peut-être que la nomenclature TYP_GRP est iun peu à part, comme quelques autres, car ce champs n'est pas saisissable au niveau d'Occtax-mobile. Et peu-être qu'il est obligatoire de pouvoir récupérer la valeur par défaut de cette nomenclature pour pouvoir la poster quand on envoie un relevé dans la BDD d'Occtax ? @sgrimault, des précisions sur ce sujet ?

A ma connaissance, si on ne poste pas une nomenclature quand on créé un relevé, alors la BDD se charge de pousser la valeur par défaut, mais peut-être que je me trompe. @TheoLechemia ? Et en regardant la BDD, il semble bien qu'il faille poster une valeur pour ce champs quand on créé un relevé : https://github.com/PnX-SI/GeoNature/blob/master/contrib/occtax/backend/occtax/migrations/data/occtax.sql#L264 Dommage peut-être de pas avoir une valeur par défaut directement gérée dans la BDD ?

TheoLechemia commented 1 year ago

Oui, si aucune valeur n'est passé, c'est la valeur par défaut qui est calculé en base. Par contre, ça ne marche pas si on passe explicitement "NULL" à un champ

sgrimault commented 1 year ago

TYP_GRP est considéré comme obligatoire pour le relevé et "Occtax" récupère simplement les valeurs par défaut des nomenclatures au démarrage du relevé pour alimenter automatiquement ces nomenclatures.