TaxHub icon indicating copy to clipboard operation
TaxHub copied to clipboard

Auto-complétion - Amélioration de la recherche - coalesce bib_noms

Open pierre56 opened this issue 10 months ago • 1 comments

Version Version de GeoNature 2.13.0

Description du bug Lors de la recherche d'un taxon dans un module, impossible de trouver le nom vern alors que celui ci a été rempli manuellement par les référents régionaux des observatoires. Le cas se présente avec taxref14, si j'avais fait la maj cela aurait peut être résolu le pb, mais afin de prendre en compte les modifs faites sur taxhub et proposer les bons taxons dans les listes.

Comportement attendu Afficher les noms vernaculaires saisies manuellement dans taxhub si il ne sont pas présents dans taxref.

Comment reproduire voir https://github.com/Bretagne-Vivante/GeoNature/issues/1 pour les investigations

Tickets associés https://github.com/PnX-SI/gn_module_monitoring/issues/253 https://github.com/PnX-SI/GeoNature/issues/1302 https://github.com/PnX-SI/TaxHub/issues/332

**Proposition **

Modification de vm_taxref_list_forautocomplete, ajout d'un coalesce sur le nom venr/nom_francais

drop MATERIALIZED VIEW taxonomie.vm_taxref_list_forautocomplete

CREATE MATERIALIZED VIEW taxonomie.vm_taxref_list_forautocomplete
TABLESPACE pg_default
AS SELECT row_number() OVER () AS gid,
    t.cd_nom,
    t.cd_ref,
    t.search_name,
    unaccent(t.search_name) AS unaccent_search_name,
    t.nom_valide,
    t.lb_nom,
    t.nom_vern,
    t.regne,
    t.group2_inpn
   FROM ( SELECT t_1.cd_nom,
            t_1.cd_ref,
            concat(t_1.lb_nom, ' = <i>', t_1.nom_valide, '</i>', ' - [', t_1.id_rang, ' - ', t_1.cd_nom, ']') AS search_name,
            t_1.nom_valide,
            t_1.lb_nom,
            t_1.nom_vern,
            t_1.regne,
            t_1.group2_inpn
           FROM taxonomie.taxref t_1
        UNION
         SELECT DISTINCT t_1.cd_nom,
            t_1.cd_ref,
            concat(split_part(coalesce (bn.nom_francais , t_1.nom_vern)::text, ','::text, 1), ' = <i>', t_1.nom_valide, '</i>', ' - [', t_1.id_rang, ' - ', t_1.cd_ref, ']') AS search_name,
            t_1.nom_valide,
            t_1.lb_nom,
            t_1.nom_vern,
            t_1.regne,
            t_1.group2_inpn
           FROM taxonomie.taxref t_1
           join taxonomie.bib_noms bn on bn.cd_nom = t_1.cd_nom
          WHERE coalesce (bn.nom_francais , t_1.nom_vern)::text IS NOT NULL AND t_1.cd_nom = t_1.cd_ref) t
    
          
WITH DATA;

-- View indexes:
CREATE INDEX i_tri_vm_taxref_list_forautocomplete_search_name ON taxonomie.vm_taxref_list_forautocomplete USING gin (unaccent_search_name gin_trgm_ops);
CREATE INDEX i_vm_taxref_list_forautocomplete_cd_nom ON taxonomie.vm_taxref_list_forautocomplete USING btree (cd_nom);
CREATE UNIQUE INDEX i_vm_taxref_list_forautocomplete_gid ON taxonomie.vm_taxref_list_forautocomplete USING btree (gid);

grant all privileges on taxonomie.vm_taxref_list_forautocomplete to geonatadmin ;

J'ai bien vu les discussions sur la disparition possible de la table bib_noms, mais cela me parait important de pallier immédiatement au manque de taxref quand c'est possible. Voir d'un autre point de vue, privilégier le nom saisie en local.

L'ordre du coalesce est a modifier en fonction, mais cela me semble un bon compromis 😄

je ne maitrise pas encore suffisamment alembic pour proposer une pr sur la bdd...

pierre56 avatar Oct 06 '23 14:10 pierre56

En effet bib_noms avait notamment été créée à l'époque de la conception de TaxHub il y a une dizaine d'années alors que Taxref était beaucoup moins complet et avait très peu de noms vernaculaires renseignés. Depuis cela s'est beaucoup rempli.

Par ailleurs cette table apporte de la complexité technique mais aussi aux utilisateurs pour créer des listes, ajouter des médias et des attributs, et encore plus pour mettre à jour Taxref.

C'est pour cela que GeoNature-atlas et GeoNature v2 n'utilisent pas cette table, en vue de la supprimer.

Une v2 de TaxHub est en cours de developpement et inclut notamment la suppression de la table bib_noms, donc on ne peut pas intégrer son utilisation désormais.

On pourrait imaginer d'autres moyens plus simples pour surcoucher le nom vernaculaire de Taxref, mais à développer.

En attendant la seule solution qu'on peut proposer, même si fragile, est de modifier directement le nom vernaculaire dans la table Taxref, en scriptant ça pour le réappliquer à chaque mise à jour de Taxref.

camillemonchicourt avatar Oct 07 '23 07:10 camillemonchicourt