Skip to content

Commit

Permalink
mergeé
Browse files Browse the repository at this point in the history
  • Loading branch information
TheoLechemia committed Nov 25, 2020
2 parents 5934b4b + 9953e6d commit dbf07a1
Show file tree
Hide file tree
Showing 5 changed files with 128 additions and 56 deletions.
89 changes: 45 additions & 44 deletions data/core/synthese.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1308,48 +1308,49 @@ $function$
-- Import dans la synthese, ajout de limit et offset
-- pour pouvoir boucler et traiter des quantités raisonnables de données
CREATE OR REPLACE FUNCTION gn_synthese.import_row_from_table(
select_col_name character varying,
select_col_val character varying,
tbl_name character varying,
limit_ integer,
offset_ integer)
RETURNS boolean AS
$BODY$
DECLARE
select_sql text;
import_rec record;
BEGIN

--test que la table/vue existe bien
--42P01 undefined_table
IF EXISTS (
SELECT 1 FROM information_schema.tables t WHERE t.table_schema ||'.'|| t.table_name = tbl_name
) IS FALSE THEN
RAISE 'Undefined table: %', tbl_name USING ERRCODE = '42P01';
END IF ;

--test que la colonne existe bien
--42703 undefined_column
IF EXISTS (
SELECT * FROM information_schema.columns t WHERE t.table_schema ||'.'|| t.table_name = tbl_name AND column_name = select_col_name
) IS FALSE THEN
RAISE 'Undefined column: %', select_col_name USING ERRCODE = '42703';
END IF ;


-- TODO transtypage en text pour des questions de généricité. A réflechir
select_sql := 'SELECT row_to_json(c)::jsonb d
FROM ' || tbl_name || ' c
WHERE ' || select_col_name|| '::text = ''' || select_col_val || '''
LIMIT ' || limit_ || '
OFFSET ' || offset_;

FOR import_rec IN EXECUTE select_sql LOOP
PERFORM gn_synthese.import_json_row(import_rec.d);
END LOOP;
select_col_name character varying,
select_col_val character varying,
tbl_name character varying,
limit_ integer,
offset_ integer)
RETURNS boolean
LANGUAGE 'plpgsql'

COST 100
VOLATILE
AS $BODY$
DECLARE
select_sql text;
import_rec record;
BEGIN

RETURN TRUE;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
--test que la table/vue existe bien
--42P01 undefined_table
IF EXISTS (
SELECT 1 FROM information_schema.tables t WHERE t.table_schema ||'.'|| t.table_name = LOWER(tbl_name)
) IS FALSE THEN
RAISE 'Undefined table: %', tbl_name USING ERRCODE = '42P01';
END IF ;

--test que la colonne existe bien
--42703 undefined_column
IF EXISTS (
SELECT * FROM information_schema.columns t WHERE t.table_schema ||'.'|| t.table_name = LOWER(tbl_name) AND column_name = select_col_name
) IS FALSE THEN
RAISE 'Undefined column: %', select_col_name USING ERRCODE = '42703';
END IF ;

-- TODO transtypage en text pour des questions de généricité. A réflechir
select_sql := 'SELECT row_to_json(c)::jsonb d
FROM ' || LOWER(tbl_name) || ' c
WHERE ' || select_col_name|| '::text = ''' || select_col_val || '''
LIMIT ' || limit_ || '
OFFSET ' || offset_ ;

FOR import_rec IN EXECUTE select_sql LOOP
PERFORM gn_synthese.import_json_row(import_rec.d);
END LOOP;

RETURN TRUE;
END;
$BODY$;
49 changes: 48 additions & 1 deletion data/migrations/2.5.5to2.5.6.sql
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,51 @@ CREATE TRIGGER tri_maj_id_sensitivity_synthese
REFERENCING NEW TABLE AS NEW
FOR EACH STATEMENT
EXECUTE PROCEDURE gn_sensitivity.fct_tri_maj_id_sensitivity_synthese();


CREATE OR REPLACE FUNCTION gn_synthese.import_row_from_table(
select_col_name character varying,
select_col_val character varying,
tbl_name character varying,
limit_ integer,
offset_ integer)
RETURNS boolean
LANGUAGE 'plpgsql'

COST 100
VOLATILE
AS $BODY$
DECLARE
select_sql text;
import_rec record;
BEGIN

--test que la table/vue existe bien
--42P01 undefined_table
IF EXISTS (
SELECT 1 FROM information_schema.tables t WHERE t.table_schema ||'.'|| t.table_name = LOWER(tbl_name)
) IS FALSE THEN
RAISE 'Undefined table: %', tbl_name USING ERRCODE = '42P01';
END IF ;

--test que la colonne existe bien
--42703 undefined_column
IF EXISTS (
SELECT * FROM information_schema.columns t WHERE t.table_schema ||'.'|| t.table_name = LOWER(tbl_name) AND column_name = select_col_name
) IS FALSE THEN
RAISE 'Undefined column: %', select_col_name USING ERRCODE = '42703';
END IF ;

-- TODO transtypage en text pour des questions de généricité. A réflechir
select_sql := 'SELECT row_to_json(c)::jsonb d
FROM ' || LOWER(tbl_name) || ' c
WHERE ' || select_col_name|| '::text = ''' || select_col_val || '''
LIMIT ' || limit_ || '
OFFSET ' || offset_ ;

FOR import_rec IN EXECUTE select_sql LOOP
PERFORM gn_synthese.import_json_row(import_rec.d);
END LOOP;

RETURN TRUE;
END;
$BODY$;
17 changes: 16 additions & 1 deletion docs/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,24 @@ CHANGELOG
2.5.6 (unreleased)
------------------

**🚀 Nouveautés**

* Métadonnées : Refonte de la liste des CA et JDD avec l'ajout d'informations et d'actions, ainsi qu'une recherche avancée (#889)
* Métadonnées : Révision des fiches info des CA et JDD avec l'ajout d'actions, du tableau des imports et du téléchargement des rapports d'UUID et de sensibilité (#889)
* Métadonnées : Possibilité d'importer directement dans un JDD depuis le module Métadonnées (#889)
* Synthèse : Possibilité d'ouvrir le module avec un JDD préselectionné (``<URL_GeoNature>/#/synthese?id_dataset=2``) et ajout d'un lien direct depuis le module Métadonnées (#889)
* Possibilité de customiser le logo principal (GeoNature par défaut) dans ``frontend/src/custom/images/``


**🐛 Corrections**

*
* Synthèse : function import_row_from_table test sur LOWER(tbl_name)


**⚠️ Notes de version**

* Si vous aviez fait des customisations (logo, PDF export...) alors XXXXXX
* Revoir http://docs.geonature.fr/admin-manual.html#integrer-son-logo ?

2.5.5 (2020-11-19)
------------------
Expand Down
15 changes: 14 additions & 1 deletion docs/authors.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Parc national des Cevennes

* Amandine Sahl
* Frédéric Fidon
* Joël Clément

.. image:: http://geonature.fr/img/logo-pnc.jpg
:target: http://www.cevennes-parcnational.fr
Expand All @@ -29,12 +30,24 @@ Contributeurs
* Kevin Samuel
* Donovan Maillard (Flavia)
* Khanh-Chau Nguyen (Parc national des Ecrins)
* Etienne Trimaille (Parc national de Guadeloupe))
* Etienne Trimaille (Parc national de Guadeloupe)
* Fred Cloitre (LPO Ardèche)
* Daniel Thonon (LPO Isère)
* Richard Vergely (Parc national des Ecrins)
* Robin Elzeard (Parc national des Ecrins)
* Sylvain Montagner (Parc naturel régional de Normandie-Maine)
* Patrick Kappeler (Natural Solutions)
* Julien Corny (Natural Solutions)
* Jean-Brieuc Lehébel-Péron (Gretia)
* Jean-Baptiste Desbas (Picardie Nature)
* Romain Baghi (NEO)
* Sébastien Grimault
* Sébastien Pascal-Poher (Probesys)
* Jean-Pascal Milcent (CBNA)
* Florent Vollmer (Ouidou)
* Aboubakr Oudghiri (Ouidou)
* Matthieu Etourneau (Geofit)
* Florent Richard (Geofit)
* Judith Panijel (UMS Patrinat)
* Alain Laupin (UMS Patrinat)
* Ludovic Le Pontois (Parc national des Pyrénées)
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,17 @@
Réalisé avec <a
target="_blank"
href="http://geonature.fr"
> GeoNature</a> Version
> GeoNature</a> version
<a
target="_blank"
href="https://github.com/PnX-SI/GeoNature/releases"
>{{ version }}</a>
</p>
<p class="p-small">
Développé par le
Logiciel open source développé par une
<a
target="_blank"
href="http://www.ecrins-parcnational.fr "
> Parc national des Ecrins</a> et le
<a
target="_blank"
href="http://www.cevennes-parcnational.fr"
> Parc national des Cévennes</a>
href="http://docs.geonature.fr/authors.html"
> communauté de structures</a>
</p>
</div>
</div>

0 comments on commit dbf07a1

Please sign in to comment.