-
Notifications
You must be signed in to change notification settings - Fork 30
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
Feat/allow program list with all taxref #430
base: dev
Are you sure you want to change the base?
Feat/allow program list with all taxref #430
Conversation
- Change api - Add branch label to use flask db status - WIP: fix error on types medias Reviewed-by: andriacap
- Comment method axhub_rest_get_taxon no more used - Use function to format response from taxref - Apply black - Add todos and notes to explain code / comments Reviewed-by: andriacap
- Adapt code where taxhub_full_list is called -> change route -> change information to display in frontend based on length of programm list and information stored (name, medias) -> Rename taxonomy component for research autocomplete research Reviewed-by: andriacap
- Change way to sort Species - Add detect refresh observations for observedSpecies - Add load medias when post new obs in order to get images from new obs - Refact to get photoUrl to display in list observations Reviewed-by: andriacap
Reviewed-by: andriacap
- Change path default image - Change name displayed for added obs Reviewed-by: andriacap
- Use label priorities - Fix problem that preferred is called twice Reviewed-by: andriacap
-Backend - Remove all references of taxhub_full_lists (list in cache backend) - Add routes to get medias types and bibattributs - Add params to route "get_lists" in order to use query params list of cd_nom - Change docstring for "get_lists" - Add function "set_taxa_info_from_taxhub" to add information taxhub (taxref and medias) to newobs - Frontend: - Add globalCacheService to get and set medias types and bibattributs - Add api route in taxhubService to get Medias and BibAttributs and loadAndCacheData to use globalCacheService based on return of api route called - Add interface to use typing as much as possible - Add call to this._taxhubService.setMediasAndAttributs in order to filter on medias (photo, photo principale and photo citizen) and to filter on attribut "nom_français" - Comment old "Autocomplete" code - Use filtered method service : this._taxhubService.filterMediasTaxhub in step of "congrats" in order to use first photo, if not medias taxhub - Global: - Add comments to all references seems to be useless now Reviewed-by: andriacap
a92ecce
to
6d73eff
Compare
@andriacap , pourras-tu compléter le fichier |
- use relative path to import in frontend - Use Taxon interface instead of TaxonBase Reviewed-by: andriacap
Yes je vais le compléter ! |
else: | ||
taxon_list_data = None | ||
|
||
features_with_taxhub_info = set_taxa_info_from_taxhub(taxon_list_data, features) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
set_taxa_info_from_taxhub attends un dictionnaire une clé "items", hors, taxon_list_data peut être null, notamment si l'on a pas d'observations (après création d'un programme vierge par exemple)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normalement ici on est dans le cas d'un post avec le "commit" en base de données qui est fait juste avant . On est pas censé avoir un programme vierge . Par contre autre question est ce qu'on peut avoir un programme sans list taxonomique ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
traité
réponse à la question:
- si programme via l'interface: pas possible
- si via la bdd: possible
<!-- TAXON SELECT --> | ||
<div class="row"> | ||
<div class="row" *ngIf="!loading"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maintenant que le nom_francais
de bib_noms n'existe plus, il est plus probable de se retrouver avec des taxons sans attribut nom francais ni nom vernaculaire officiel taxref. Ces taxons n'ont alors plus de nom dans citizen (vide total). Il faut réadapter les règles avec affichage par ordre de priorité:
- Attribut nom_francais (si attribut existe) > fait
- Nom vern (1ère valeur éclatée par les virgules?) > fait
- Nom scientifique. > manquant
cf. lignes avec:
!!s.nom_francais ? s.nom_francais : s.taxref.nom_vern
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok voir méthode getPreferredName que j'ai mis en place pour que j'utilise dans l'autocomplete pour la sauvegarde du "name" en BDD. (je peux changer l'ordre et enlever des champs si non nécessaire)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
traité
// ** Pour changer la valeur affichée */ | ||
@Input() displayedLabel = 'nom_vern'; | ||
/** Afficher ou non les filtres par regne et groupe INPN qui controle l'autocomplétion */ | ||
@Input() displayAdvancedFilters = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comment rendre activable/désactivable cette propriété displayAdvancedFilters
(désactivée par défaut)? Cette propriété n'est pas utilisée dans l'appel du composant depuis le formulaire.
Je dirait qu'il y a un travail d'UX à affiner sur l'affichage et l'ergonomie (bouton d'activation en dessous, champs de préfiltrage au dessus). Quand au champ de recherche en autocomplete, je le verrai bien avec la largeur complète de la modal, comme le select de la liste de plus courte.
Quand on cache ces champs supplémentaires de recherche, ils restent quand même utilisés pour le filtrage de la recherche. Il faudrait vider leurs valeurs dans l'appel d'API.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Les champs supplémentaires Règne et Groupe sont effectivement désactivables et pas souhaitables il me semble . Vu que je m'étais appuyé sur le composant existant présent dans GeoNature il y avait ces options d'embarquées. Mais je peux les supprimés étant donné que ce n'était pas demandé dans les développements
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oui, selon moi ces filtres sont superflus et compliquent l'interface et sa compréhension.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
traité
backend/gncitizen/utils/taxonomy.py
Outdated
"taxref": { | ||
"cd_nom": item.get("cd_nom"), | ||
"cd_ref": item.get("cd_ref"), | ||
"cd_sup": item.get("cd_sup"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ne peux-t-on pas réduire ce dictionnaire au strict nécessaire ? beaucoup de champs peuvent sauter
(cd_sup, cd_taxsup, id_rang, id_statut, lb_auteur, tribu, url, ordre, classe, regne, etc.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour moi en tant que dev je suis ce qui est souhaité niveau métier . S'il y a consensus sur le fait de ne pas avoir besoin de tout ces champs , je réduis au nombre souhaité (il faut être sur que ce n'est pas appelé ailleurs , synthèse de citizen ? fiche détails ? autre part ?) .
J'avais mis cette NOTE d'ailleurs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
traité
c'est une piste d'optimisation. Les champs sont utilisés à différents endroits de l'appli, notamment la synthèse. Il nous semble plus judicieux de faire cette modif, si nécessaire, dans un second temps.
except Exception as e: | ||
return {"message": str(e)}, 400 | ||
|
||
|
||
@taxo_api.route("/taxonomy/tmedias/types", methods=["GET"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est donc pas exclusivement géré côté frontend ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ce sont uniquement la définition des routes qui sont coté backend . Ca permet de garder une homogénéité dans la gestion des routes API (notamment pour le renvoi des erreurs) . Par contre , les modifications n'utilisent plus la mise en cache coté backend (ce qui était le cas pour les taxhub_list) . Ce qui a été dit lors de la réunion, proposé et expliqué par Amandine c'était d'avoir une mise en cache des types de médias et attributs coté frontend (et c'est le cas dans la PR , voir le globalCacheService) .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
traité
except Exception as e: | ||
return {"message": str(e)}, 400 | ||
|
||
@taxo_api.route("/taxonomy/bibattributs", methods=["GET"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est donc pas exclusivement géré côté frontend ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ce sont uniquement la définition des routes qui sont coté backend . Ca permet de garder une homogénéité dans la gestion des routes API (notamment pour le renvoi des erreurs) . Par contre , les modifications n'utilisent plus la mise en cache coté backend (ce qui était le cas pour les taxhub_list) . Ce qui a été dit lors de la réunion, proposé et expliqué par Amandine c'était d'avoir une mise en cache des types de médias et attributs coté frontend (et c'est le cas dans la PR , voir le globalCacheService) .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
traité
@taxo_api.route("/taxonomy/refresh", methods=["GET"]) | ||
@json_resp | ||
def refresh(): | ||
lists = refresh_taxonlist() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok donc s'il y a seulement ça qui est utilisé : taxhub_lists , je dois enlever juste cette partie :
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
traité
- Replace nom_francais / nom_vern by "name" property Reviewed-by: andriac
Reviewed-by: andriacap
Use getPreferredName method everywhere needs to display taxon name . Use click event in select in order to update cd_nom control form Reviewed-by: andriacap
Reviewed-by: andriac
Reviewed-by: andriacap
cfa986b
to
6d7c90b
Compare
Reviewed-by: andriacap
Reviewed-by: andriacap
Reviewed-by: andriacap
- Refactored route all_observations to manage empty taxhub_list. Reviewed-by: andriacap
- Remove unused code according to list taxhub loaded in backend - Keep /refresh route to allow taxhub to refresh its list of taxref calling 'biblistes' API route. Reviewed-by: andriacap
- Increase limit of 100 for the route /taxonomy/list (before it was 5) Reviewed-by: andriacap
- First call infos for allprograms list to get count taxon in program taxhub list - Then call route api to get species list with cd_nom in order to get medias and attributes (in case of taxaCount < taxaAutocompleteThreshold) Reviewed-by: andriacap
Remove code references to old way for autocomplete Reviewed-by: andriacap
- Add a new feature to allow program list with all taxref - WIP: need to precise version number Reviewed-by: andriacap
C'est bon j'ai ajouté les changelog. Je rédige pas souvent de changelog , j'ai essayé de me baser sur les autres notes de version qui ont été faite sur citizen. |
Co-authored-by: Camille Monchicourt <camille.monchicourt@ecrins-parcnational.fr>
Co-authored-by: Camille Monchicourt <camille.monchicourt@ecrins-parcnational.fr>
Co-authored-by: Camille Monchicourt <camille.monchicourt@ecrins-parcnational.fr>
Co-authored-by: Camille Monchicourt <camille.monchicourt@ecrins-parcnational.fr>
Co-authored-by: Camille Monchicourt <camille.monchicourt@ecrins-parcnational.fr>
Co-authored-by: Camille Monchicourt <camille.monchicourt@ecrins-parcnational.fr>
Co-authored-by: Camille Monchicourt <camille.monchicourt@ecrins-parcnational.fr>
Co-authored-by: Camille Monchicourt <camille.monchicourt@ecrins-parcnational.fr>
- need to change way to call getrPreferredName Reviewd-by: andriacap
Reviewed-by: andriacap
Reviewed-by: andriacap
Reviewed-by: andriacap
Reviewed-by: andriacap
Cette PR fait référence à la suppression de la limite des 100 taxons, plus précisémment autoriser des programmes dans citizen avec tout taxref.
Voici l'ensemble des changements proposés dans cette PR :
Backend :
taxref
à la place debibnoms
Frontend :
allnamebylist
this._taxhubService.setMediasAndAttributs
afin de filtrer les médias (photo, photo principale et photo citoyen) et de filtrer sur l'attribut "nom_francais".this._taxhubService.filterMediasTaxhub
dans l'étape "congrats" pour utiliser le premier médias de type valide si aucune photo n'a été ajouté à l'observationGlobal :
TODO: [LIMIT100-TAXON-COMPAT-THV2]
)Toutes les issues et PR qui sont liées à ce sujet :