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

Modifications de la route /taxref pour ajouter medias et attributs #498

Open
andriacap opened this issue May 23, 2024 · 14 comments
Open

Modifications de la route /taxref pour ajouter medias et attributs #498

andriacap opened this issue May 23, 2024 · 14 comments

Comments

@andriacap
Copy link

Bonjour,

Je créé ce ticket au sujet des discussions qui ont été entamées sur le dépôt de GeoNature citizen en vu de modifier la route /taxref . Pour résumer, cette modification suggérerait de pouvoir passer en params de types "medias" et "attributs" pour pouvoir retourner les médias et attributs associés à une ou plusieurs espèces ( à discuter sur las yntaxe des params).

Ces modifications font références au fait que dans Citizen pour le moment , il y a un appel successif pour plusieurs routes coté backend pour charger au préalable la liste des espèces d'un programme .

Cette modification permettrait d'éviter d'avoir à faire un appel à une route pour avoir dans un premier temps toutes les informations de la liste des espèces (cd_nom, nom scientifique etc) puis sur la base de cette liste appelé autant de fois la route qui sert à récupérer les médias pour récupérer chaque médias de chaque espèce.

Je laisse @camillemonchicourt et @hypsug0 me corriger, compléter au cas où il manquerait des informations.

Référence isssue dans GeoNature Citizen : PnX-SI/GeoNature-citizen#327
Référence PR en draft dans GeoNature Citizen : PnX-SI/GeoNature-citizen#381

Merci d'avance

@camillemonchicourt
Copy link
Member

OK, en effet, il nous semble OK et pertinent d'enrichir la route /taxref/ qui serait la route de base pour récupérer les taxons et leurs éventuels infos associées.
Par contre, il faut voir comment faire ne sorte que ces objets enfants (médias et attributs) ne soient pas forcément renvoyés de base, mais seulement si on les demande, pour ne pas alourdir la réponse de la route par défaut et pour son usage actuel.
Mais c'est déjà certainement le cas pour les listes de taxons qui ont été ajoutées à la route /taxref/ dans la version 1.13.1. Donc voir comment c'est fait et faire pareil, il me semble.

@andriacap
Copy link
Author

Salut Camille,

Oui il s'agit bien de paramètres optionnels à rajouter pour ne pas impacter l'existant

@andriacap
Copy link
Author

Salut,

Je me permet de relancer ce ticket .

Est ce que c'est OK si on propose des devs avec l'ajout de query parameters de type : include=media,attributs à la route /taxref.

Si c'est OK , on rajouterait à la route en fonction du query parameters include une une jointure sur les tables bib_attributs via cor_taxon_attribut et t_medias .

Merci pour vos retours pour pouvoir attaquer les développements

@krebs-m
Copy link

krebs-m commented Aug 19, 2024

Bonjour,

Je me permet de relancer ce ticket déposé par Andria il y a quelques semaines.
Serait-il possible d'obtenir assez rapidement, dans la mesure du possible compte tenu des vacances de chacun, une réponse aux questionnements ci-dessus, de manière à pouvoir lancer les développements?

Les évolutions de Géonature Citizen liées à cette question, que nous avons commandées au mois d'octobre de l'année dernière, sont bloquées depuis un moment et nous aimerions disposer d'une version intégrant ces développements dans le courant de l'hiver.

Merci d'avance pour vos retours

@camillemonchicourt
Copy link
Member

Oui c'est bien ça et du coup on l'a fait dans le branche develop dans le cadre de la refonte de TaxHub en V2 : https://github.com/PnX-SI/TaxHub/blob/develop/apptax/taxonomie/models.py#L172-L179

Comme on pouvait déjà demander les listes de chaque taxon avec le paramètre ?fileds=listes, on peut maintenant aussi demander les attributs, les médias, etc...

Explication dans la doc : https://github.com/PnX-SI/TaxHub/blob/doc/taxhubv2/docs/developpement.md?plain=1#L13

@krebs-m
Copy link

krebs-m commented Aug 19, 2024

OK super, merci !
C'est donc un feu vert pour attaquer les dev sur la partie Citizen?

@camillemonchicourt
Copy link
Member

Oui oui comme indiqué dans ma réponse du 27 mai, c'est OK en s'appuyant sur ce qui existait déjà pour lister les listes auxquelles appartiennent chaque taxon.
Mais ce n'est pas vraiment ce qui a été proposé ensuite avec la proposition d'ajouter une propriété "include", donc nous nous en sommes occupés dans le cadre de la refonte de TaxHub.
La route /taxref/ permet désormais de récupérer aussi les médias et attributs de chaque taxon, dans la branche develop de TaxHub.
Donc c'est OK pour faire les développements côté GeoNature-citizen en s'appuyant sur la branche develop de GeoNature, en mentionnant côté GN-citizen que la prochaine version nécessitera la version 2.0.0 minimum de TaxHub.

@andriacap
Copy link
Author

Salut,

Merci pour les éléments de réponse .

J'aurais besoin de plus de précisions concernant la compatibilité GN citizen avec la nouvelle version de TaxHub ?
Par rapport à cette partie de ta réponse :

Donc c'est OK pour faire les développements côté GeoNature-citizen en s'appuyant sur la branche develop de GeoNature, en mentionnant côté GN-citizen que la prochaine version nécessitera la version 2.0.0 minimum de TaxHub.

Est ce qu'il y a besoin d'attendre que le Gn Citizen soit compatible avec la V2 de TaxHub ? Ou bien est ce qu'il y a des développements à faire en particulier coté GN Citizen pour utiliser TaxHuv V2 ?

@TheoLechemia
Copy link
Member

Salut,
On s'est assuré qu'il n'y ai pas de breaking change entre TaxHub v2 et GeoNature. Les seules routes qui on été supprimées sont celles qui étaient utilisé par l'ancien frontend de TaxHub. Je ne connais pas GN-Citizen et quels routes il utilise donc je peux pas garantir que ça fonctionne, mais à priori il n'y a pas de raison qu'il utilise ces routes.
La route /taxref était déjà utilisé dans le 1.14, elle sera juste amelioré dans la v2. Pas de changement non plus sur /allnamebylist

@camillemonchicourt
Copy link
Member

En effet la v2 de TaxHub ne change pas son API (sauf quelques ajouts comme la possibilité de récupérer les médias et attributs directement dans la route /taxref et la suppression de tout ce qui est lié à la table bib_noms supprimée). Voir https://github.com/PnX-SI/TaxHub/blob/doc/taxhubv2/docs/developpement.md
Donc les développements à réaliser sont ceux prévus côté GeoNature-citizen pour s'appuyer plus largement sur la route /taxref pour récupérer les taxons, les listes de taxons, leurs médias, etc... et donc réduire/supprimer la partie "taxonomie" dans le backend de GeoNature-atlas pour s'appuyer plus directement sur l'API de TaxHub

@andriacap
Copy link
Author

andriacap commented Aug 20, 2024

Il y a tout ça qui fait référence à TaxHub dans Gn Citizen
https://github.com/PnX-SI/GeoNature-citizen/blob/68469ff72e48bd0ae47ff668ad701219026efeac/backend/gncitizen/core/taxonomy/models.py

J'imagine que c'est impacté ?

@TheoLechemia
Copy link
Member

Oui effectivement, je savais pas que Citizen réimplémentait les models.
Bib_noms est bien supprimé.
Dans l'idéal Citizen pourrait chargé TaxHub comme dépendance et importer ses modèles.
Il y a une référence à bib_noms ici aussi : https://github.com/PnX-SI/GeoNature-citizen/blob/68469ff72e48bd0ae47ff668ad701219026efeac/backend/gncitizen/utils/taxonomy.py#L68

@camillemonchicourt
Copy link
Member

Oui c'est le sujet déjà évoqué, discuté et initié côté GeoNature-citizen de s'appuyer directement sur l'API de TaxHub et de ne pas refaire de backend "taxonomie" dans GeoNature-citizen : PnX-SI/GeoNature-citizen#236

Pas lié à TaxHub directement mais à voir côté GeoNature-citizen.

@andriacap
Copy link
Author

Du coup , le scope concernant "enlever la limite des 100 taxons" aux chargements des listes dépend dans un premier temps au refactoring de toute la logique lié à l'utilisation de TaxHub dans Citizen

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

4 participants