PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
104 stars 102 forks source link

nomenclatures par defaut #1484

Open joelclems opened 3 years ago

joelclems commented 3 years ago

Les changements récents liées à la release 2.8.0 ont mis à jour quelques soucis liés aux nomenclature par défaut. Principalement dus à l'utilisation d'id en dur dans le code (sql, backend, ..)

Il apparaît aussi que les tables defaut_nomenclature_value et les fonctions get_defaut_nomenclature_value sont définis plusieurs fois dans les schémas :

Cela correspond à des contextes et des utilisations différentes, mais n'est pas forcement simple à maintenir. Est t'il possible de centraliser des tables et les fonctions associées?

Proposition

Le nomenclatures par défaut sont des données/fonctionalités de géonature qui utilisent la nomenclature. Leur place n'est pas forcement dans le schema ref_nomenclatures, cela évite de créer une dépendance de ce dernier avec d'autres éléments, comme le schema utilisateurs.

Une api /gn_commons/defaultNomenclatures permettrais d'accéder à ces données.

L'idée proposée dans ce ticket serait de créer une seule table et une seule fonctions dans le schema gn_commons qui permettrait de centraliser la gestion des nomenclature par défaut.

La table gn_commons.default_nomenclatures_values

Il faut veiller à ce que cette table soit en concordance avec ce qui exise déjà:

le principe

La fonction gn_commons.get_default_nomenclatures_value

difficulté

par exemple on souhaite avoir une nomenclature par défaut dans occtax pour METH_OBS et la demande se fait pour un organisme et un jeux de données, on trouve deux ligne correspondante:

Les inconvénients

DonovanMaillard commented 3 years ago

Même en termes de configuration, ca pourrait aider à y voir plus clair : pas toujours simple de savoir quelle conf surcouche la quelle. Mais ce que tu mentionnes soulève aussi plusieurs questions :

D'une manière générale, on commence a avoir énormément de choses qui se configurent au niveau du module, au niveau de l'organisme, au niveau du JDD... permissif mais plus complexe à configurer, maintenir, tester etc.

camillemonchicourt commented 3 years ago

Pouvoir définir des valeurs par défaut par organisme était une idée initiale qui a été prévue mais jamais utilisée.

A mon avis c'est trop complexe et pas forcément pertinent.

Je serait favorable à complètement enlever cette possibilité si il est confirmé qu'elle est utilisée par personne.

Si on doit pouvoir affiner les valeurs par défaut en fonction des contextes, alors ça aurait plus de sens au niveau des JDD.

Mais là aussi comme souligne Donovan, c'est complexe et je ne suis pas convaincu qu'il faille aller à ce niveau de finesse.

Dans tous les cas ça serait à implémenter plus tard si besoin et avec un usage bien clair.

Donc je serai pour simplifier et alléger cela.

Je supprimerai le champs "organisme" et je mettrai pas de champs "dataset" pour le moment sans usage identifié.

Je pense aussi que c'est galère et peu lisible d'avoir plusieurs tables similaires à différents endroits, et favorable à une seule table dans gn_commons.

Je me demande même si c'est réellement utile et utilisé de pouvoir définir ces valeurs par défaut par module ?

joelclems commented 3 years ago

je ne sais pas quelle est l'usage réel qui est fait dans la synthese des champs regne et group2inpn pour les nomeclature par defaut

une installation fraiche donne des lignes avec regne et group2_inpn qui ont toujours la valeur 0

camillemonchicourt commented 3 years ago

A voir si ça aussi c'est vraiment utile et utilisé ?

Autre tickets sur le sujet : https://github.com/PnX-SI/GeoNature/issues/553

DonovanMaillard commented 3 years ago

S'il y a une conf par JDD, je pense également que la conf par module peut disparaitre... dans tous les cas, les JDD sont suffisamment permissifs pour répondre à un maximum de besoins.

On peut avoir un jdd différent selon le module utilisé (en théorie c'est plus ou moins, un protocole = un module = un jdd dans les cas classiques?), selon les organismes, voire selon les groupes taxonomiques. Si on peut configurer par jdd, ça me semblerait plus simple et clair que les configurations ne se fasse QUE par jdd.

Un peu plus pénible sur le point cité plus haut, au niveau de la "persistence" des config puisque les jdd restent vivants et ont des fois une durée de vie assez courte. Mais on peut imaginer une configuration "par défaut" pour l'instance, qui est récupérée quand rien n'est défini au niveau du JDD. Ca permet de supprimer les notions d'organismes, de modules, et de groups taxo (j'ai 4 instances en prod, pas toutes configurées par moi à l'origine, aucune ne définit de nomenclatures en fonction du taxon...)

camillemonchicourt commented 3 years ago

https://github.com/PnX-SI/GeoNature/issues/1353

camillemonchicourt commented 3 years ago

https://github.com/PnX-SI/GeoNature/issues/280

camillemonchicourt commented 3 years ago

https://github.com/PnX-SI/GeoNature/issues/821