Skip to content

Commit

Permalink
Merge pull request #232 from PnX-SI/develop
Browse files Browse the repository at this point in the history
Develop > Master / Prepa 1.7.2
  • Loading branch information
camillemonchicourt authored Jul 3, 2020
2 parents f39f109 + d7ffd69 commit 8d2b48b
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 6 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.7.1
1.7.2
1 change: 1 addition & 0 deletions apptax/taxonomie/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ class VMTaxrefListForautocomplete(serializableModel, db.Model):
cd_ref = db.Column(db.Integer)
nom_valide = db.Column(db.Unicode)
lb_nom = db.Column(db.Unicode)
nom_vern = db.Column(db.Unicode)
regne = db.Column(db.Unicode)
group2_inpn = db.Column(db.Unicode)

Expand Down
2 changes: 1 addition & 1 deletion apptax/taxonomie/routesbiblistes.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ def getNoms_bibtaxons(idliste):
# Traitement des parametres
parameters = request.args
limit = parameters.get("limit", 100, int)
page = parameters.get("page", 0, int)
page = parameters.get("page", 1, int)
offset = parameters.get("offset", 0, int)
(limit, offset, page) = calculate_offset_page(limit, offset, page)

Expand Down
2 changes: 1 addition & 1 deletion apptax/taxonomie/routesbibnoms.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def get_bibtaxons():

# Traitement des parametres
limit = parameters.get("limit", 20, int)
page = parameters.get("page", 0, int)
page = parameters.get("page", 1, int)
offset = parameters.get("offset", 0, int)
(limit, offset, page) = calculate_offset_page(limit, offset, page)

Expand Down
5 changes: 2 additions & 3 deletions apptax/taxonomie/routestaxref.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ def genericTaxrefList(inBibtaxon, parameters):

# Traitement des parametres
limit = parameters.get("limit", 20, int)
page = parameters.get("page", 0, int)
page = parameters.get("page", 1, int)
offset = parameters.get("offset", 0, int)
(limit, offset, page) = calculate_offset_page(limit, offset, page)

Expand Down Expand Up @@ -360,10 +360,9 @@ def get_AllTaxrefNameByListe(id_liste):
)

limit = request.args.get("limit", 20, int)
page = request.args.get("page", 0, int)
page = request.args.get("page", 1, int)
offset = request.args.get("offset", 0, int)
(limit, offset, page) = calculate_offset_page(limit, offset, page)

data = q.limit(limit).offset(offset).all()

if search_name:
Expand Down
5 changes: 5 additions & 0 deletions apptax/utils/genericfunctions.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,15 @@ def calculate_offset_page(limit, offset, page):
offset et page
Si un offset est défini
il prend le pas sur le paramètre page
Le paramètre page est seulement indicatif, il commence à 1 et ne peut être < 1
Le offset commence à 0 et ne peut pas être négatif
"""
if offset:
if offset < 0:
offset = 0
page = int(offset / limit)
return (limit, offset, page)
else:
page = 1 if page < 1 else page
offset = (page-1) * limit
return (limit, offset, page)
3 changes: 3 additions & 0 deletions data/taxhubdata.sql
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ SELECT
t.search_name,
t.nom_valide,
t.lb_nom,
t.nom_vern,
t.regne,
t.group2_inpn
FROM (
Expand All @@ -48,6 +49,7 @@ FROM (
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
Expand All @@ -61,6 +63,7 @@ FROM (
concat(split_part(t_1.nom_vern, ',', 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
Expand Down
58 changes: 58 additions & 0 deletions data/update1.7.1to1.7.2.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@

-- Creation d'une vue matérialis&ée de tous les noms de Taxref mis en forme pour la recherche de taxons
-- avec le nom vernaculaire
DROP MATERIALIZED VIEW IF EXISTS taxonomie.vm_taxref_list_forautocomplete;

CREATE MATERIALIZED VIEW taxonomie.vm_taxref_list_forautocomplete AS
SELECT
row_number() OVER() as gid,
t.cd_nom,
t.cd_ref,
t.search_name,
t.nom_valide,
t.lb_nom,
t.nom_vern,
t.regne,
t.group2_inpn
FROM (
-- PARTIE NOM SCIENTIFIQUE : ici on prend TOUS les synonymes.
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
-- PARTIE NOM FRANCAIS : ici on prend une seule fois (DISTINCT) dans Taxref tous les taxons de références
-- On ne prend pas les taxons qui n'ont pas de nom vern dans taxref,
-- donc si un taxon n'a pas de nom vern dans Taxref, il n'est accessible que par son nom scientifique.
SELECT DISTINCT
t_1.cd_nom,
t_1.cd_ref,
concat(split_part(t_1.nom_vern, ',', 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
WHERE t_1.nom_vern IS NOT null and t_1.cd_nom = t_1.cd_ref
) t;
COMMENT ON MATERIALIZED VIEW taxonomie.vm_taxref_list_forautocomplete
IS 'Vue matérialisée permettant de faire des autocomplete construite à partir d''une requete sur tout taxref.';

-- Creation des index de la table vm_taxref_list_forautocomplete
CREATE unique index i_vm_taxref_list_forautocomplete_gid
ON taxonomie.vm_taxref_list_forautocomplete (gid);
CREATE INDEX i_vm_taxref_list_forautocomplete_cd_nom
ON taxonomie.vm_taxref_list_forautocomplete (cd_nom ASC NULLS LAST);
CREATE INDEX i_vm_taxref_list_forautocomplete_search_name
ON taxonomie.vm_taxref_list_forautocomplete (search_name ASC NULLS LAST);
CREATE INDEX i_tri_vm_taxref_list_forautocomplete_search_name
ON taxonomie.vm_taxref_list_forautocomplete
USING gist
(search_name gist_trgm_ops);
16 changes: 16 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@
CHANGELOG
=========

1.7.2 (2020-07-03)
------------------

**🚀 Nouveautés**

* Ajout du nom vernaculaire (``nom_vern``) dans la vue matérialisée ``taxonomie.vm_taxref_list_forautocomplete`` et dans la route associée (``api/taxref/allnamebylist/``)

**🐛 Corrections**

* Correction de la pagination des routes quand le paramètre ``offset`` est égal à zéro (nécessaire pour Sync-mobile)

**⚠️ Notes de version**

* Exécutez le script SQL de mise à jour de la BDD (https://github.com/PnX-SI/TaxHub/blob/master/data/update1.7.1to1.7.2.sql)
* Suivez la procédure standard de mise à jour de TaxHub : https://taxhub.readthedocs.io/fr/latest/installation.html#mise-a-jour-de-l-application

1.7.1 (2020-07-02)
------------------

Expand Down

0 comments on commit 8d2b48b

Please sign in to comment.