Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Taxhub V2 #424

Open
edelclaux opened this issue Aug 20, 2024 · 1 comment
Open

Taxhub V2 #424

edelclaux opened this issue Aug 20, 2024 · 1 comment

Comments

@edelclaux
Copy link
Contributor

edelclaux commented Aug 20, 2024

Description

Taxhub est en cours de montée de version vers une v2 "breaking change". Il me semble qu'elle est en train d'être finalisée.

Pour info:

A priori, au dernier trimestre 2024, une version 2.15 de GeoNature s'appuyant sur TaxHub V2 va être déployée.

Est-ce qu'il y a des projections pour la mise en compatibilité de GeoNature-citizen ?

J'ai l'impression que ça touche plusieurs sujets d'archi pas si évident à traiter.

@camillemonchicourt
Copy link
Member

La V2 de TaxHub est avant tout une refonte de son interface en passant de Angular JS (qui n'est plus supporté depuis un moment) à Flask-admin plus simple et stable à maintenir, et permettant son intégration (optionnelle) à GeoNature en tant que module.

Donc globalement le modèle de données et l'API de TaxHub ne changent pas avec sa V2.

Mais on a profité de cette refonte pour réaliser un chantier prévu de très longue date : supprimer la table taxonomie.bib_noms.
Cette suppression est discutée depuis 2017/2018 : PnX-SI/TaxHub#111 et PnX-SI/TaxHub#163.
En effet, bib_noms a été créée dans la première version de TaxHub vers 2012 quand Taxref était très jeune et disposait de peu de noms vernaculaires, et que l'on souhaitait disposer d'une liste des taxons/noms présents sur notre territoire.
Le premier point a été beaucoup enrichi au fur et à mesure des nouvelles versions de Taxref. Le second point est géré par une liste comme "Saisie Occtax".
Mais par contre bib_noms apporte pas mal de duplication de données, mais aussi beaucoup de complexité pour les utilisateurs/administrateurs. Pour ajouter un média ou un attribut à un taxon, ou ajouter un taxon à une liste, il faut d'abord l'ajouter à bib_noms, donc des manipulations plus complexes et peu intuitives. Cela rendait aussi plus complexe de générer en masse des listes de taxons. Et surtout, cela complexifiait pas mal les mises à jour de Taxref.

C'est car cette suppression est prévue de longue date que l'on a fait aucun usage ni référence à taxonomie.bib_noms dans GeoNature-atlas (2016), ni la V2 de GeoNature (2017).

Je ne sais pas quel était l'usage de taxonomie.bib_noms dans GeoNature-citizen (que je connais peu dans le détail), mais c'est en effet le seul élément que j'ai en tête à répercuter pour passer sur la V2 de TaxHub car le reste ne change pas.

Et je ne pense pas que cela soit un gros sujet, car bib_noms ne sert qu'à fournir un nom français spécifique quand il n'est pas fourni dans Taxref, ou que l'on souhaite en utiliser un différent.
J'ai d'ailleurs l'impression qu'il n'est utilisé qu'ici dans le code :

url = f"{TAXHUB_API}bibnoms/{taxhub_id}"

Donc très très minime et secondaire de ce que j'en comprends.

Pour faire fonctionner GN-citizen avec THv2, il me semble qu'il suffit donc dans un premier temps de modifier le fichier des modèles de "taxonomy" pour ne plus faire référence à bib_noms et de remplacer l'appel à la route /bibnoms/ dans /utils/taxonomy.py


Plus globalement, au départ les modèles du schéma "taxonomie" de TaxHub ont été dupliqués manuellement dans GeoNature-citizen : https://github.com/PnX-SI/GeoNature-citizen/blob/master/backend/gncitizen/core/taxonomy/models.py

Il a ensuite été retenu de supprimer cette duplication pour s'appuyer uniquement et directement sur l'API de TaxHub : #236.
Cela a été fait, même si il a fallu ensuite réintégrer ces modèles car ils étaient encore utilisés par le système de badges (optionnel). Mais ils ne sont utilisés nul part ailleurs.

Il y a eu pas mal de débats, je ne suis pas forcément d'accord avec le fait de s'appuyer uniquement sur l'API de TaxHub car on perd l'intégrité référentielle au niveau de la BDD et la simplicité des jointures pour récupérer le nom d'un taxon, son rang ou autre (#321), mais dans le cadre d'un projet simple comme GeoNature-citizen, ça peut s'entendre.
A vous de voir cette partie.
Dans tous les cas, si l'on souhaite conserver le modèle de données de TaxHub dans GeoNature-citizen sans les dupliquer manuellement, il est possible d'installer TaxHub comme un sous-module comme on fait dans GeoNature : https://github.com/PnX-SI/GeoNature/blob/master/backend/requirements-dependencies.in#L6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants