Closed TheoLechemia closed 2 years ago
sauf erreur c'était bien fonctionnel avant. Est-ce qu'il y a eu des modifications sur ce point lors du passage à une seule appli @sgrimault ?
Je vais voir de mon coté car cette partie là n'a pas changé sur les derniers développements. Je vous tiens au courant :)
merci à toi!
@DonovanMaillard,
C'est sur quelle instance ?
De mon côté, sur l'instance de demo, tout est ok, tu trouveras ci-dessous les requêtes SQL jouées par l'application.
Depuis la liste des taxons, j'ai appliqué le filtre sur les "Oiseaux" :
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
WHERE (((taxa_kingdom = 'Animalia')
AND (taxa_group = 'Oiseaux')))
ORDER BY taxa_name ASC
et sélectionné un taxon (id: 188728, name: 'Accipiter', taxonomy: (kingdom='Animalia', group='Oiseaux'))
Depuis la page "Informations", récupération de la nomenclature :
SELECT
nomenclature_types."_id" AS nomenclature_types__id,
nomenclature_types."mnemonic" AS nomenclature_types_mnemonic,
nomenclature_types."default_label" AS nomenclature_types_default_label
FROM nomenclature_types nomenclature_types
ORDER BY nomenclature_types_mnemonic ASC
et des valeurs par défaut :
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 = 'occtax'
ORDER BY nomenclatures_default_label ASC
Si je sélectionne un champ, par exemple "Statut biologique" (code : STATUT_BIO
):
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,
nomenclatures_taxonomy."nomenclature_id" AS nomenclatures_taxonomy_nomenclature_id,
nomenclatures_taxonomy."kingdom" AS nomenclatures_taxonomy_kingdom,
nomenclatures_taxonomy."group" AS nomenclatures_taxonomy_group
FROM nomenclatures nomenclatures
JOIN nomenclature_types AS nomenclature_types ON nomenclature_types__id = nomenclatures_type_id
AND nomenclature_types_mnemonic = 'STATUT_BIO'
JOIN nomenclatures_taxonomy AS nomenclatures_taxonomy
ON nomenclatures_taxonomy_nomenclature_id = nomenclatures__id
AND (
((nomenclatures_taxonomy_kingdom = 'Animalia') AND (nomenclatures_taxonomy_group = 'Oiseaux'))
OR ((nomenclatures_taxonomy_kingdom = 'Animalia') AND (nomenclatures_taxonomy_group = 'any'))
OR ((nomenclatures_taxonomy_kingdom = 'any') AND (nomenclatures_taxonomy_group = 'any'))
)
ORDER BY nomenclatures_default_label ASC
nomenclatures__id | nomenclatures_code | nomenclatures_default_label | nomenclatures_type_id | nomenclature_types_mnemonic | nomenclature_types_default_label | nomenclatures_taxonomy_nomenclature_id | nomenclatures_taxonomy_kingdom | nomenclatures_taxonomy_group |
---|---|---|---|---|---|---|---|---|
34 | 5 | Estivation | 13 | STATUT_BIO | Statut biologique | 34 | Animalia | Oiseaux |
33 | 4 | Hibernation | 13 | STATUT_BIO | Statut biologique | 33 | Animalia | Oiseaux |
29 | 0 | Inconnu | 13 | STATUT_BIO | Statut biologique | 29 | any | any |
31 | 2 | Non Déterminé | 13 | STATUT_BIO | Statut biologique | 31 | any | any |
30 | 1 | Non renseigné | 13 | STATUT_BIO | Statut biologique | 30 | any | any |
35 | 9 | Pas de reproduction | 13 | STATUT_BIO | Statut biologique | 35 | Animalia | any |
32 | 3 | Reproduction | 13 | STATUT_BIO | Statut biologique | 32 | Animalia | any |
Cette requête me retourne bien les valeurs correspondant à la taxonomie du taxon (ici : "Animalia" - "Oiseaux"). Pour information, la dernière jointure applique le filtre qui permet de ne garder que les valeurs selon la taxonomie :
any
)Dans ton cas, c'est comme si les données en base n'étaient pas rattachées à une taxonomie d'où le fait qu'elles soient systématiquement remontées lors de l'affichage des valeurs possible pour un champ donnée.
@TheoLechemia pour le détail ;)
Oups désolé @TheoLechemia, je n'ai pas fais attention que c'était toi à l'origine de l'issue.
C'est sur notre instance de prod: https://geonature.ecrins-parcnational.fr Je revérifie demain
Je te confirme le comportement : j'ai bien les nomenclatures de flore, alors que l'API web ne les renvoie pas : https://geonature.ecrins-parcnational.fr/api/nomenclatures/nomenclature/STADE_VIE?regne=Animalia&group2_inpn=Oiseaux&orderby=label_default
Attention, coté application je fais appel à la route https://geonature.ecrins-parcnational.fr/api/nomenclatures/nomenclatures/taxonomy pour récupérer toutes les valeurs possible pour la nomenclature.
En regardant vite fait le retour, notamment sur STADE_VIE
(ID : 10), la valeur "Pleine de floraison" n'a pas d'entrées pour l'attribut taxref
:
{
"id_nomenclature": 481,
"cd_nomenclature": "127",
"mnemonique": "Pleine floraison",
"label_default": "Pleine floraison",
"label_fr": "Pleine floraison",
"label_en": null,
"label_es": null,
"label_de": null,
"label_it": null,
"hierarchy": "010.127",
"taxref": []
}
qui du coup est interprété comme suit coté application :
{
"id_nomenclature": 481,
"cd_nomenclature": "127",
"mnemonique": "Pleine floraison",
"label_default": "Pleine floraison",
"label_fr": "Pleine floraison",
"label_en": null,
"label_es": null,
"label_de": null,
"label_it": null,
"hierarchy": "010.127",
"taxref": [
{
"regne": "all",
"group2_inpn": "all"
}
]
}
donc applicable pour tous les taxons.
Bien vu, je n'avais plus en tête les deux routes différentes.
Version de l'application
Version d'Occtax-mobile affectée par le bug : 2.1.0 Version de GeoNature utilisée : 2.9.0
Terminal et Version Android
Marque et modèle du terminal : Version d'Android :11
Description du bug et comportement attendu
La liste des valeurs de nomenclature n'est pas filtrée en fonction des "valeurs possibles" du taxon saisi. C'est en revanche bien fonctionnel sur l'étape précédente (pour les nomenclatures de techniques d'obs etc...)
Comment reproduire
Sélectionner un oiseau dans la liste des taxons, passer à l'étape 5 et sélectionner "stade de vie". Les items "Pleine floraison", "stade boutons floraux", "stade végétatif" ne devrait pas être présents car elles sont associés uniquement aux taxons de flore.
C'est également fonctionnel sur la version web, le problème ne doit pas venir de l'API.