From 5a570e302f7858dbc640b0602454e8abf35ae1c0 Mon Sep 17 00:00:00 2001 From: Andria Capai Date: Thu, 21 Nov 2024 16:04:01 +0100 Subject: [PATCH] feat: improve perf route biblistes - Load only necessary fields - Remove useless parameter id=None - Fix expression "nb_taxons" in BibListes model Reviewed-by: andriacap --- apptax/taxonomie/models.py | 4 ++-- apptax/taxonomie/routesbiblistes.py | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/apptax/taxonomie/models.py b/apptax/taxonomie/models.py index ac7e2663..db28e653 100644 --- a/apptax/taxonomie/models.py +++ b/apptax/taxonomie/models.py @@ -266,8 +266,8 @@ def nb_taxons(self): @nb_taxons.expression def nb_taxons(cls): return ( - db.select([db.func.count(cor_nom_liste.id_liste)]) - .where(BibListes.id_liste == cls.id_liste) + db.select([db.func.count(cor_nom_liste.c.id_liste)]) + .where(cor_nom_liste.c.id_liste == cls.id_liste) .label("nb_taxons") ) diff --git a/apptax/taxonomie/routesbiblistes.py b/apptax/taxonomie/routesbiblistes.py index 512764c9..59a10869 100644 --- a/apptax/taxonomie/routesbiblistes.py +++ b/apptax/taxonomie/routesbiblistes.py @@ -24,17 +24,21 @@ @adresses.route("/", methods=["GET"]) @json_resp -def get_biblistes(id=None): +def get_biblistes(): """ retourne les contenu de bib_listes dans "data" et le nombre d'enregistrements dans "count" """ - data = db.session.query(BibListes).all() + biblistes_records = db.session.query( + BibListes.id_liste, BibListes.code_liste, BibListes.nom_liste, BibListes.nb_taxons + ).all() biblistes_schema = BibListesSchema() - maliste = {"data": [], "count": 0} - maliste["count"] = len(data) - maliste["data"] = biblistes_schema.dump(data, many=True) - return maliste + biblistes_infos = { + "data": biblistes_schema.dump(biblistes_records, many=True), + "count": len(biblistes_records), + } + + return biblistes_infos @adresses.route("/", methods=["GET"], defaults={"group2_inpn": None})