-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
211 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
|
||
-- Vue générique pour alimenter la synthèse dans le cadre d'un protocole site-visite-observation | ||
-- | ||
-- Ce fichier peut être copié dans le dossier du sous-module et renommé en synthese.sql (et au besoin personnalisé) | ||
-- le fichier sera joué à l'installation avec la valeur de module_code qui sera attribué automatiquement | ||
-- | ||
-- | ||
-- Personalisations possibles | ||
-- | ||
-- - ajouter des champs specifiques qui peuvent alimenter la synthese | ||
-- jointure avec les table de complement | ||
-- | ||
-- - choisir les valeurs de champs de nomenclatures qui seront propres au modules | ||
|
||
|
||
-- ce fichier contient une variable :module_code (ou :'module_code') | ||
-- utiliser psql avec l'option -v module_code=<module_code | ||
|
||
-- ne pas remplacer cette variable, elle est indispensable pour les scripts d'installations | ||
-- le module pouvant être installé avec un code différent de l'original | ||
|
||
DROP VIEW IF EXISTS gn_monitoring.v_synthese_:module_code; | ||
CREATE VIEW gn_monitoring.v_synthese_:module_code AS | ||
|
||
WITH source AS ( | ||
|
||
SELECT | ||
|
||
id_source | ||
|
||
FROM gn_synthese.t_sources | ||
WHERE name_source = CONCAT('MONITORING_', UPPER(:'module_code')) | ||
LIMIT 1 | ||
|
||
), sites AS ( | ||
|
||
SELECT | ||
|
||
id_base_site, | ||
geom AS the_geom_4326, | ||
ST_CENTROID(geom) AS the_geom_point, | ||
geom_local as geom_local | ||
|
||
FROM gn_monitoring.t_base_sites | ||
|
||
), visits AS ( | ||
|
||
SELECT | ||
|
||
id_base_visit, | ||
uuid_base_visit, | ||
id_module, | ||
id_base_site, | ||
id_dataset, | ||
id_digitiser, | ||
|
||
visit_date_min AS date_min, | ||
COALESCE (visit_date_max, visit_date_min) AS date_max, | ||
comments, | ||
|
||
o.observers, | ||
o.ids_observers, | ||
|
||
id_nomenclature_tech_collect_campanule, | ||
id_nomenclature_grp_typ | ||
|
||
FROM gn_monitoring.t_base_visits | ||
LEFT JOIN LATERAL ( | ||
SELECT -- | ||
array_agg(r.id_role) AS ids_observers, | ||
STRING_AGG(CONCAT(r.nom_role, ' ', prenom_role), ' ; ') AS observers | ||
FROM gn_monitoring.cor_visit_observer cvo | ||
JOIN utilisateurs.t_roles r | ||
ON r.id_role = cvo.id_role | ||
WHERE cvo.id_base_visit = id_base_visit | ||
) o ON true | ||
|
||
) | ||
|
||
SELECT | ||
|
||
o.uuid_observation AS unique_id_sinp, | ||
v.uuid_base_visit AS unique_id_sinp_grp, | ||
source.id_source, | ||
o.id_observation AS entity_source_pk_value, | ||
v.id_dataset, | ||
ref_nomenclatures.get_id_nomenclature('NAT_OBJ_GEO', 'St') AS id_nomenclature_geo_object_nature, | ||
|
||
v.id_nomenclature_grp_typ, -- TYP_GRP | ||
--id_nomen clature_obs_technique, -- METH_OBS | ||
v.id_nomenclature_tech_collect_campanule, --TECHNIQUE_OBS | ||
--id_nomenclature_bio_status, -- STATUT_BIO | ||
--id_nomenclature_bio_condition, -- ETA_BIO | ||
--id_nomenclature_naturalness, -- NATURALITE | ||
--id_nomenclature_exist_proof, -- PREUVE_EXIST | ||
--id_nomenclature_valid_status, --STATUT_VALID | ||
--id_nomenclature_diffusion_level, -- NIV_PRECIS | ||
--id_nomenclature_life_stage, -- STADE_VIE | ||
--id_nomenclature_sex, -- SEXE | ||
ref_nomenclatures.get_id_nomenclature('IND', 'OBJ_DENBR') AS id_nomenclature_obj_count, | ||
ref_nomenclatures.get_id_nomenclature('TYP_DENBR', 'Es') AS id_nomenclature_type_count, | ||
-- id_nomenclature_sensitivity, --SENSIBILITE | ||
ref_nomenclatures.get_id_nomenclature('STATUT_OBS', 'Pr') AS id_nomenclature_observation_status, | ||
-- id_nomenclature_blurring, -- DEE_FLOU | ||
-- id_nomenclature_behaviour, -- OCC_COMPORTEMENT | ||
ref_nomenclatures.get_id_nomenclature('STATUT_SOURCE', 'Te') AS id_nomenclature_source_status, | ||
ref_nomenclatures.get_id_nomenclature('TYP_INF_GEO', '1') AS id_nomenclature_info_geo_type, | ||
|
||
1 AS count_min, | ||
1 AS count_max, | ||
id_observation, | ||
o.cd_nom, | ||
t.nom_complet AS nom_cite, | ||
--meta_v_taxref | ||
--sample_number_proof | ||
--digital_proofvue | ||
alt.altitude_min, | ||
alt.altitude_max, | ||
s.the_geom_4326, | ||
s.the_geom_point, | ||
s.geom_local as the_geom_local, | ||
v.date_min, | ||
v.date_max, | ||
--validator | ||
--validation_comment | ||
observers, | ||
--determiner | ||
v.id_digitiser, | ||
--id_nomenclature_determination_method | ||
--meta_validation_date | ||
--meta_create_date, | ||
--meta_update_date, | ||
--last_action | ||
v.id_module, | ||
v.comments AS comment_context, | ||
o.comments AS comment_description, | ||
ids_observers, | ||
|
||
-- ## Colonnes complémentaires qui ont leur utilité dans la fonction synthese.import_row_from_table | ||
v.id_base_site, | ||
v.id_base_visit | ||
|
||
FROM gn_monitoring.t_observations o | ||
JOIN visits v | ||
ON v.id_base_visit = o.id_base_visit | ||
JOIN sites s | ||
ON s.id_base_site = v.id_base_site | ||
JOIN gn_commons.t_modules m | ||
ON m.id_module = v.id_module | ||
JOIN taxonomie.taxref t | ||
ON t.cd_nom = o.cd_nom | ||
JOIN source | ||
ON TRUE | ||
LEFT JOIN LATERAL ref_geo.fct_get_altitude_intersection(s.geom_local) alt (altitude_min, altitude_max) | ||
ON TRUE | ||
WHERE m.module_code = :'module_code' | ||
; | ||
|
||
|
||
SELECT * FROM gn_monitoring.v_synthese_:module_code | ||
LIMIT 10; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
TODO de la doc | ||
|
||
# synthese | ||
|
||
## configuration | ||
|
||
photo | ||
|
||
## fichier sql exemple et qui marche partout | ||
## add \set module_code='<ton_module_code>' | ||
|
||
## function bash init_views |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# Intégration des données dans la synthèse | ||
|
||
## La vue pour la synthèse | ||
|
||
### Pour les modules de type Site -> Visite -> Observation | ||
|
||
- Copier le fichier `data/synthese_svo.sql` dans `<repertoire_sous_module>/synthese.sql`. | ||
|
||
- Ce script SQL sera joué automatiquement à l'installation du module (voir le paragraphe `data/update_views.sh` pour le jouer à la demande). | ||
|
||
- Cette vue peut être personalisée pour chaque module, on peut nottament | ||
- mettre des valeurs présentes dans les table de complément (champs spécifiques) et qui peuvent alimenter des champs de la synthèse | ||
- donner des valeurs plus spécifique au module pour les champs de type nomenclature (la plupart sont en commentaires dans la vue) | ||
|
||
- À la configuration du sous-module (page du sous-module, appuyer sur `éditer le module`), activer la synthèse. | ||
|
||
Au besoin, si des données sont déjà présentes, appuyer sur `Mettre à jour la synthèse` (attention cela peut prendre du temps). Cette actions met à jour la synthèse pour tout le module. | ||
|
||
La synthèse est mise à jour pour toutes les observations concernée par une création /modification d'un site, d'une visite ou d'une observation. | ||
|
||
### Pour les autres type de module | ||
|
||
- adapter la vue | ||
- ajouter `"synthese_object": "visit"` si le module s'arête au niveau des visites | ||
- par défaut il est à `observation` | ||
- cela permet de renseigner la table `gn_synthese.t_sources` (et de créer le liens dans la synthèse vers la module monitoring qui a généré la ligne de la synthèse) | ||
|
||
|
||
## `data/update_views.sh` | ||
Tous les fichiers de vue pour la synthese peuvent être rejoués avec la commande | ||
|
||
- `data/update_views <chemin absolu vers geonature>` (tous les modules) | ||
|
||
- `data/update_views <chemin absolu vers geonature> <module_code>` (un seul module) |