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

[Synthese] Ajout de filtres sur les statuts et les listes rouges #1492

Closed
jpm-cbna opened this issue Oct 11, 2021 · 3 comments
Closed

[Synthese] Ajout de filtres sur les statuts et les listes rouges #1492

jpm-cbna opened this issue Oct 11, 2021 · 3 comments
Assignees

Comments

@jpm-cbna
Copy link
Contributor

L'objectif et de rajouter sur la fenêtre modale "Filtres taxonomiques avancés" du module "Synthese" des filtres personnalisables sur les statuts de protection et des listes rouges issus de la "BDC Statuts" intégrée au schéma taxonomie depuis la version 1.8.0 de TaxHub. Le module "Validation" profitera aussi de ces fonctionnalités car il partage avec "Synthese" le formulaire de recherche et la fiche d'une observation.

Base de données

Dans la base de données, par défaut, tous les textes de la BDC Statuts sont "activés" et donc pris en compte par l'interface. Si nécessaire, l'administrateur devra se charger de désactiver les textes de la table taxonomie.bdc_statut_text inutiles pour son installation. Exemple de requête:

UPDATE taxonomie.bdc_statut_text SET enable = false WHERE cd_sig IN ('TER971', 'TER972', 'TER973', 'TER971', 'TER974' ) ;

Tous les textes ayant une valeur false pour champ enable de la table taxonomie.bdc_statut_text seront ignorés lors des recherches dans la Synthese prenant en compte des filtres de status.

Il est aussi nécessaire d'ajouter une nouvelle table au schéma ref_geo qui contiendra la correspondance entre les valeurs du champ cd_sig de la table taxonomie.bdc_statut_text et les id_area de la table ref_geo.l_areas.
C'est GeoNature qui se chargera de créer cette table et son contenu.
Cette table permettra de déterminer qu'une observation possède bien une position comprise dans l'aire géographique d'application du texte (cd_sig dans taxonomie.bdc_statut_text). Couplé à la correspondance avec le cd_ref (taxonomie.bdc_statut_taxons) d'un taxon pris en compte par le texte précédemment déterminé, nous pourrons considérer que le statut de protection défini par le texte s'applique à l'observation..

Paramètres de configuration

Tous les statuts et listes rouge n'étant pas pertinant pour toutes les installations de GeoNature, nous devons rendre personnalisable les champs à afficher.

Pour ce faire, nous ajouterons 2 nouveaux paramètres (RED_LISTS_FILTERS et STATUS_FILTERS) à la section [SYNTHESE] du fichier geonature_config.toml. Ces paramètres contiendrons des listes d'objets, ayant ce format :

[SYNTHESE]
    RED_LISTS_FILTERS = [
        { "id" = "worldwide", "show" = true, "display_name" = "Liste rouge mondiale", "status_type" = "LRM" },
        { "id" = "european", "show" = true, "display_name" = "Liste rouge européenne", "status_type" = "LRE" },
        { "id" = "national", "show" = false, "display_name" = "Liste rouge nationale", "status_type" = "LRN" },
        { "id" = "regional", "show" = true, "display_name" = "Liste rouge régionale", "status_type" = "LRR" },
    ]
    STATUS_FILTERS = [
        { "id" = "protections", "show" = true, "display_name" = "Taxons protégés", "status_types" = ["POM", "PN", "PR", "PD"] },
        { "id" = "regulations", "show" = true, "display_name" = "Taxons réglementés", "status_types" = ["REGLII", "REGL", "REGLSO"] },
        { "id" = "invasive", "show" = true, "display_name" = "Espèces envahissantes", "status_types" = ["REGLLUTTE"] },
        { "id" = "znief", "show" = true, "display_name" = "Espèces déterminantes ZNIEFF", "status_types" = ["ZDET"] },
    ]

Ces 2 paramètres peuvent contenir autant d'objets que nécessaire et la répartition des cd_type_statut entre eux peut se faire selon les choix de l'administrateur gérant le fichier de configuration.

Description des champs des objets des paramètres:

  • id: une chaîne unique au sein du paramètre identifiant le champ dans le formulaire de recherche.
  • show : booléen permettant d'afficher (=true) ou cacher (=false) le champ dans le formulaire. Cela évite de devoir supprimer la ligne dans le fichier de config.
  • display_name : texte utilisé devant le champ du filtre.
  • status_types / status_type : contient les cd_type_statut des textes utilisés pour le filtre. Pour le paramètre STATUS_FILTERS, nous attendons une liste de cd_type_statut alors que pour RED_LISTS_FILTERS c'est un seul cd_type_statut.

Représentation des filtres dans le formulaire taxonomique avancés

Dans la fenêtre modale "Filtres taxonomiques avancés", les filtres correspondant au paramètre STATUS_FILTERS utiliserons le composant pnx-multiselect s'il y a plus d'un cd_type_statut sinon nous utiliserons simplement une checkbox. Ils seront regroupé dans une section dont le titre sera "Statuts".
Pour le paramètre RED_LISTS_FILTERS, cela sera toujours un composant de type pnx-multiselect.
Ils seront regroupé dans une section dont le titre sera "Listes rouges".
Nous en profiterons pour regrouper les champs "Habitat" et "Groupe 2 INPN" dans une section intitulé "Attributs TaxRef". Le champ "Liste rouge UICN" sera supprimé car dépendant d'une table dépréciée.
De même, les champs "Rechercher un rang taxonomique" et "Arbre taxonomique" seront regroupés dans une section intitulé "Rangs taxonomiques".

Screenshot_20211011_165829

Représentation de la sélection dans le formulaire principale

Sur le formulaire principal de la Synthèse, nous afficherons un texte indiquant le nombre de statuts ou de valeurs de listes rouges ont été sélectionnées par l'utilisateur dans la fenêtre modale avancée. Sur le même principe que celui en place pour les taxons sélectionnés par rang ou dans l'arbre taxo.
Nous en profiterons pour prendre aussi en compte, les Attributs TaxRef. Pour les attributs TaxHub, l'utilisation d'un formulaire dynamique rend la mécanique plus compliqué. Nous ne le prendrons pas en compte pour l'instant (sauf si une solution simple existe).
Le style sera revue pour maximiser la place. Une infobulle s'affichera au survol d'une icone "i" pour indiquer le détail de la sélection effectuée dans la modale. Les éléments survolés dans la liste seront surligné pour faciliter la lecture.

Screenshot_20211011_170626

Screenshot_20211011_170550

Autres tâches

Ces évolutions impliquent aussi de:

  • mettre à jour la fiche d'une observation pour y afficher les textes des statuts qui la concerne. Actuellement, les valeurs proviennent d'une table dépréciée toujours présente dans le schéma taxonomie. Nous nous baserons sur le travail de représentation actuellement réalisé dans TaxHub.
  • mettre à jour le fichier téléchargeable contenant les textes des statuts des observations affichées. Même problème que pour la fiche d'une observation. Nous récupérerons les informations depuis les nouvelles tables.
  • supprimer toutes les références aux anciennes tables dans le code de GN, de TaxHub et dans la base de données...
@jpm-cbna jpm-cbna self-assigned this Oct 11, 2021
@camillemonchicourt
Copy link
Member

camillemonchicourt commented Oct 11, 2021

OK super.
A voir à terme comment gérer le lien entre les textes et le référentiel géographique.
Si c'est vraiment à ajouter dans ref_geo ou plutôt dans taxonomie en fonction des dépendances que l'on souhaite créer ou non.

Dans tous les cas, Patrinat a indiqué que les cd_sig sont des référentiels qui n'ont pas vocation à être publiés. Et qu'il est donc fort probable qu'ils disparaissent dans les prochaines versions au profit de code géographiques de référence.
Ça permettra peut-être de ne plus nécessiter de table de correspondance entre statuts et référentiel géographique.

jpm-cbna added a commit that referenced this issue Oct 15, 2021
Display the texts when the cd_ref and the location of the observation match the texts.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Oct 15, 2021
jpm-cbna added a commit that referenced this issue Oct 15, 2021
Display the texts (status) when the cd_ref and the location of the observation match the texts.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 5, 2021
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 5, 2021
jpm-cbna added a commit that referenced this issue Nov 5, 2021
Display the texts (status) when the cd_ref and the location of the observation match the texts.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 5, 2021
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 9, 2021
jpm-cbna added a commit that referenced this issue Nov 9, 2021
Display the texts (status) when the cd_ref and the location of the observation match the texts.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 9, 2021
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 19, 2021
jpm-cbna added a commit that referenced this issue Nov 19, 2021
Display the texts (status) when the cd_ref and the location of the observation match the texts.

Resolve #1492.
amandine-sahl pushed a commit that referenced this issue Nov 29, 2022
Resolve #1492.

Feat frontend/synthese: improve display of form fields used

Resolve #1492.

Feat frontend/synthese: put taxonomic rank fields in a section

Resolve #1492.

Fix backend: restore correct order for CorAreaSynthese

Fix backend/migrations: move bdc status link db upgrade to head of geonature branch

Fix frontend: fix merge errors

Fix frontend: change red_lists ws name to status_values

Fix frontend/synthese-advanced: dynamic tree now avalaible in ngOnInit

Fix frontend/synthese: change fields names

Feat backend: replace CorAreaStatus by TaxrefBdcStatutCorTextArea

Fix frontend/synthese: use correct field names and css class

Refactor backend: replace TaxrefBdcStatutCorTextArea by bdc_statut_cor_text_area

Correction rebase

Black

Correction rebase

Remove console.log

Remove unused import

Add basic tests

Refactor frontend/synthese-form: format source code

Install departements before taxref
amandine-sahl pushed a commit that referenced this issue Nov 29, 2022
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 29, 2022
Improve display of form fields used.
Put taxonomic rank fields in a section.
Restore correct order for CorAreaSynthese.
Dynamic tree now avalaible in ngOnInit.
Use "bdc_statut_cor_text_area" name for variable linking tables between
ref_geo and taxonomie.
Use correct field names and css class.
Install Departements before Taxref.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 29, 2022
Fix filters used in status export web service.

Resolve #1492.
jpm-cbna added a commit that referenced this issue Nov 29, 2022
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 2, 2022
Improve display of form fields used.
Put taxonomic rank fields in a section.
Restore correct order for CorAreaSynthese.
Dynamic tree now avalaible in ngOnInit.
Use "bdc_statut_cor_text_area" name for variable linking tables between
ref_geo and taxonomie.
Use correct field names and css class.
Install Departements before Taxref.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 2, 2022
Fix filters used in status export web service.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 2, 2022
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Improve display of form fields used.
Put taxonomic rank fields in a section.
Restore correct order for CorAreaSynthese.
Dynamic tree now avalaible in ngOnInit.
Use "bdc_statut_cor_text_area" name for variable linking tables between
ref_geo and taxonomie.
Use correct field names and css class.
Install Departements before Taxref.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Fix filters used in status export web service.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Improve display of form fields used.
Put taxonomic rank fields in a section.
Restore correct order for CorAreaSynthese.
Dynamic tree now avalaible in ngOnInit.
Use "bdc_statut_cor_text_area" name for variable linking tables between
ref_geo and taxonomie.
Use correct field names and css class.
Install Departements before Taxref.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Fix filters used in status export web service.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Improve display of form fields used.
Put taxonomic rank fields in a section.
Restore correct order for CorAreaSynthese.
Dynamic tree now avalaible in ngOnInit.
Use "bdc_statut_cor_text_area" name for variable linking tables between
ref_geo and taxonomie.
Use correct field names and css class.
Install Departements before Taxref.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Fix filters used in status export web service.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Fix filters used in status export web service.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
bouttier pushed a commit that referenced this issue Dec 5, 2022
Also, remove dead code.
Use TaxHub dependency for "taxonomie" schema models.

Resolve #1492.
@camillemonchicourt
Copy link
Member

camillemonchicourt commented Dec 21, 2022

Fait dans #2173 et intégré dans la version 2.11.0 et documenté dans la section 5 de la documentation du module Synthèse (https://docs.geonature.fr/admin-manual.html#module-synthese).
Merci.

Exemple de requête pour désactiver les textes des DOM-TOM :

UPDATE taxonomie.bdc_statut_text SET enable = false 
WHERE cd_sig IN ('TER971', 'TER972', 'TER973', 'TER971', 'TER974' ) ;

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

No branches or pull requests

2 participants