From e3a482b5bb7d193fa93638a1f95ca601c4640e93 Mon Sep 17 00:00:00 2001 From: Etienne Delclaux Date: Thu, 26 Sep 2024 11:44:19 +0200 Subject: [PATCH] feat: add taxhub route that serve status symbologies --- apptax/taxonomie/routesbdcstatuts.py | 55 ++++++++++++++++++++++++++++ apptax/tests/test_bdcstatus.py | 33 +++++++++++++++++ docs/developpement.md | 36 ++++++++++++++++-- 3 files changed, 120 insertions(+), 4 deletions(-) create mode 100644 apptax/tests/test_bdcstatus.py diff --git a/apptax/taxonomie/routesbdcstatuts.py b/apptax/taxonomie/routesbdcstatuts.py index c19fe5f04..48b7f6975 100644 --- a/apptax/taxonomie/routesbdcstatuts.py +++ b/apptax/taxonomie/routesbdcstatuts.py @@ -81,6 +81,61 @@ def get_status_lists_values(status_type=None): return [d.as_dict(fields=("code_statut", "label_statut", "display")) for d in data] +@adresses.route("/status_symbologies", methods=["GET"]) +def get_status_symbologies(): + """ + Retourne un json décrivant la symbologie associée aux valeurs de statuts. + + :returns: un json de la structure suivante + { + symbologies: [ + { + types: ["Type 1", "", etc.], + values: { + [value]: { + color: "color" + } + } + }, + ... + { + types: ["LRM", "LRE", "LRN", "LRR"], + values: { + LC: { + color: "#78b74a" + }, + VU: { + color: "#ffed00" + } + } + } + ] + } + """ + return jsonify( + { + "symbologies": [ + { + "types": ["LRM", "LRE", "LRN", "LRR"], + "values": { + "EX": {"color": "#000000"}, + "EW": {"color": "#3d1951"}, + "RE": {"color": "#5a1a63"}, + "CR": {"color": "#d3001b"}, + "EN": {"color": "#fbbf00"}, + "VU": {"color": "#ffed00"}, + "NT": {"color": "#fbf2ca"}, + "LC": {"color": "#78b74a"}, + "DD": {"color": "#d3d4d5"}, + "NA": {"color": "#919291"}, + "NE": {"color": "#ffffff"}, + }, + } + ] + } + ) + + @adresses.route("/status_types", methods=["GET"]) @json_resp def get_status_types(): diff --git a/apptax/tests/test_bdcstatus.py b/apptax/tests/test_bdcstatus.py new file mode 100644 index 000000000..599d46667 --- /dev/null +++ b/apptax/tests/test_bdcstatus.py @@ -0,0 +1,33 @@ +import pytest +from flask import url_for + +DEFAULT_STATUS_SYMBOLOGY = { + "symbologies": [ + { + "types": ["LRM", "LRE", "LRN", "LRR"], + "values": { + "EX": {"color": "#000000"}, + "EW": {"color": "#3d1951"}, + "RE": {"color": "#5a1a63"}, + "CR": {"color": "#d3001b"}, + "EN": {"color": "#fbbf00"}, + "VU": {"color": "#ffed00"}, + "NT": {"color": "#fbf2ca"}, + "LC": {"color": "#78b74a"}, + "DD": {"color": "#d3d4d5"}, + "NA": {"color": "#919291"}, + "NE": {"color": "#ffffff"}, + }, + } + ] +} + + +@pytest.mark.usefixtures("client_class") +class TestApiBdcStatus: + def test_status_symbologies(self): + response = self.client.get( + url_for("bdc_status.get_status_symbologies"), + ) + assert response.status_code == 200 + assert response.json == DEFAULT_STATUS_SYMBOLOGY diff --git a/docs/developpement.md b/docs/developpement.md index f5087e99f..156641b6e 100644 --- a/docs/developpement.md +++ b/docs/developpement.md @@ -20,9 +20,9 @@ - `/taxref/{cd_nom}`: Retourne un enregistrement de la table `taxonomie.taxref` avec les synonymes et statuts associés - Méthode autorisée : GET - + - `/taxref/allnamebylist/` : Retourne les données de la vue matérialisée `vm_taxreflist_for_autocomplete` - - Paramètres : + - Paramètres : - id_liste : identifiant de la liste (si id_liste est null ou égal à -1 on ne filtre pas sur une liste) params GET (facultatifs): - code_liste : code de la liste à filtrer, n'est pris en compte que si aucune liste n'est spécifiée @@ -32,7 +32,7 @@ - limit : nombre de résultats - offset : numéro de la page -- `/taxref/bib_habitats` : Retourne la liste des habitats définis dans Taxref +- `/taxref/bib_habitats` : Retourne la liste des habitats définis dans Taxref - `/taxref/groupe3_inpn` : Retourne la liste des groupes 3 définis dans Taxref - `/taxref/regnewithgroupe2` : Retourne une liste hiérarchisée des règnes avec les groupes 2 associés @@ -42,7 +42,7 @@ - `/biblistes/` : retourne les listes filtrées par règne - `/biblistes//` : retourne les listes filtrées par groupe 2 INPN -## BDC statuts +## BDC statuts - `/bdc_statuts/list/` : Retourne la liste des statuts associés à un taxon. - `/bdc_statuts/hierarchy/` : Retourne la liste des statuts associés sous forme hiérarchique. @@ -51,3 +51,31 @@ - Params : - codes : filtre sur une liste de codes de types de statuts séparés par des virgules. - gatherings : filtre sur une liste de type de regroupement de types de statuts séparés par des virgules. +- `/bdc_statuts/status_symbologies` : Retourne les symbologies associées au statuts au format JSON. \ + Ces symbologies sont définies statiquement, au format suivant:\ + +```json +{ + "symbologies": [ + { + "types": ["LRM", "LRE", "LRN", "LRR"], + "values": { + "EX": {"color": "#000000"}, + "EW": {"color": "#3d1951"}, + "RE": {"color": "#5a1a63"}, + "CR": {"color": "#d3001b"}, + "EN": {"color": "#fbbf00"}, + "VU": {"color": "#ffed00"}, + "NT": {"color": "#fbf2ca"}, + "LC": {"color": "#78b74a"}, + "DD": {"color": "#d3d4d5"}, + "NA": {"color": "#919291"}, + "NE": {"color": "#ffffff"}, + }, + } + ] +} +``` + +> Ces valeurs sont issues de la charte des codes couleurs pour les statuts Liste rouge, définis internationalement par l'Union internationale pour la conservation de la nature (UICN) \ +> (page 55)