Skip to content

Commit

Permalink
Merge pull request #49 from PnX-SI/develop
Browse files Browse the repository at this point in the history
Develop > Master / 1.2.0
  • Loading branch information
camillemonchicourt authored Nov 2, 2022
2 parents 7342ed1 + 16cc6ed commit f03cc23
Show file tree
Hide file tree
Showing 36 changed files with 706 additions and 308 deletions.
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# apply black
bcccbcf016f7acbe882ff35839eec7ea719b32a2
10 changes: 10 additions & 0 deletions .github/workflows/black.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Lint

on: [push, pull_request]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: psf/black@stable
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@ backend/__pycache__/*
frontend/app/module.config.ts
**/node_modules/
config/conf_gn_module.toml
.idea/
*.egg-info
/dist
venv
6 changes: 6 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
repos:
- repo: https://github.com/psf/black
rev: 22.3.0
hooks:
- id: black
language_version: python3.9
18 changes: 16 additions & 2 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,32 @@
CHANGELOG
=========

1.2.0 (unreleased)
1.2.0 (2022-11-02)
------------------

Nécessite la version 2.10.0 (ou plus) de GeoNature
Nécessite la version 2.10.0 (ou plus) de GeoNature.

**Evolutions**

- Compatibilité avec Angular version 12, mis à jour dans la version 2.10.0 de GeoNature (#38)
- Packaging du module

**Note de version**

- Suivez la procédure classique de mise à jour du module
- Exécuter la commande suivante afin d’indiquer à Alembic l'état de votre base de données :
::

cd
source geonature/backend/venv/bin/activate
geonature db stamp 2628978e1016
geonature db autoupgrade

1.1.0 (2022-01-03)
-----------------

Non compatible avec les versions 2.10 et supérieures de GeoNature.

**🚀 Nouveautés**

* Ajout d'un rapport annuel des observations (#40)
Expand Down
3 changes: 3 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
include VERSION
include LICENSE
inclule REAMDE.md
159 changes: 159 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
Dashboard
=========

Module GeoNature permettant de proposer un tableau de bord contenant
plusieurs graphiques et cartes basés sur les données présentes dans la
synthèse de GeoNature.

Développé par Elsa Guilley, stagiaire au Parc
national des Ecrins en 2019.

Démo vidéo :
<https://geonature.fr/docs/img/2019-09-GN-dashboard-0.1.0.gif>

**Fonctionnalités** :

- Nombre d'observations et de taxons par année
- Nombre d'observations et de taxons par zonage (communes,
mailles...)
- Répartition des observations par rang taxonomique
- Nombre d'observations par cadre d'acquisition par année
- Taxons recontactés, non recontactés et nouveaux par année
- Filtres divers sur chaque élément

**Présentation** :

- Rapport de stage de Elsa Guilley :
<https://geonature.fr/documents/2019-09-rapport-stage-Elsa-Guilley-Dashboard-Validation.pdf>
- Présentation de soutenance de stage de Elsa Guilley :
<https://geonature.fr/documents/2019-09-soutenance-stage-Elsa-Guilley-Dashboard-Validation.pptx>

Installation
------------

- Installez GeoNature (<https://github.com/PnX-SI/GeoNature>)
- Téléchargez la dernière version stable du module
(`wget https://github.com/PnX-SI/gn_module_dashboard/archive/X.Y.Z.zip`
ou en cliquant sur le bouton GitHub "Clone or download" de cette
page) dans `/home/myuser/`
- Dézippez la dans `/home/myuser/` (`unzip X.Y.Z.zip`)
- Renommer le répertoire
`mv gn_module_dashboard-X.Y.Z gn_module_dashboard`
- Placez-vous dans le répertoire `backend` de GeoNature et lancez les
commandes `source venv/bin/activate` puis
`geonature install-packaged-gn-module <chemin_vers_le_module> <module_code>`
pour installer le module (exemple
`geonature install-packaged-gn-module ~/gn_module_dashboard DASHBOARD`)
- Complétez la configuration du module dans le fichier
`config/conf_gn_module.toml` à partir des paramètres présents dans
`config/conf_gn_module.toml.example`, dont vous pouvez surcoucher
les valeurs par défaut. Relancez la mise à jour de la configuration
depuis le répertoire `geonature/backend` avec les commandes
`source venv/bin/activate` puis
`geonature update_module_configuration DASHBOARD`
- Vous pouvez sortir du venv en lançant la commande `deactivate`
- Relancez GeoNature et rebuilder le front
- `sudo systemctl restart geonature`
- `cd geonature/frontend`
- `nvm use`
- `npm run build`

Configuration
-------------

Un certain nombre de paramètres permettent de customiser le module en
modifiant le fichier `conf/conf_gn_module.toml` (vous pouvez vous
inspirer du fichier `conf_gn_module.toml.example` qui liste l'ensemble
des paramètres disponibles et leurs valeurs par défaut) :

- Paramétrage du niveau de simplification des zonages sur la carte
"Synthèse par entité géographique" : `SIMPLIFY_LEVEL`. Passer un
nombre entier : plus cet entier est grand et plus la simplification
est importante. Ce paramètre est nécessaire pour alléger le temps
d'affichage des zonages.
- Paramétrage des zonages affichables sur la carte "Synthèse par
entité géographique" : `AREA_TYPE`. Passer un tableau de
`type_code` (table `ref_geo.bib_areas_types`). La première valeur de
ce tableau sera la valeur utilisée par défaut pour le graphique de
synthèse par entité géographique.
- Paramétrage du nombre de classes sur la carte "Synthèse par entité
géographique" : `NB_CLASS_OBS` (mode 'nombre d'observations') et
`NB_CLASS_TAX` (mode 'nombre de taxons').
- Paramétrage de l'affichage des graphiques du dashboard :
`DISPLAY_XXXX_GRAPH`. Renseigner 'true' pour afficher le graphique
en question et 'false' pour le masquer.
- Paramétrage par défaut du graphique "Synthèse par entité
géographique" du dashboard :
`DISPLAY_NBOBS_LEGEND_BY_DEFAULT_IN_GEO_GRAPH` Renseigner 'true'
si vous souhaitez afficher par défault les observations, 'false'
si vous souhaitez les taxons

Vues matérialisées
------------------

Dans un souci de performance, des vues matérialisées ont été mises en
place. Elles sont renseignées lors de l'installation du module. Il est
nécessaire de rafraichir régulièrement ces vues matérialisées. Pour cela
vous pouvez mettre en place un CRON pour l'automatisation de cette
tâche.

Ouvrez le fichier ``/etc/cron/geonature`` s’il est existant, sinon créez le. Renseignez le commande `geonature dashboard refresh-vm`.

```
0 0 * * 0 <UTLIATEUR LINUX GEONATURE> <CHEMIN_VERS_GEONATURE>/backend/venv/bin/geonature dashboard geonature dashboard refresh-vm chiro
Exemple (exécuté tous les dimanches à 00h00):
0 0 * * 0 geonatadmin /home/geonatadmin/backend/venv/bin/geonature geonature dashboard refresh-vm chiro
```

Cette commande peut être effectuée à tout moment depuis l’environnement
virtuel de GeoNature :

`source backend/venv/bin/activate`

Lancer la commande :

`geonature dashboard refresh-vm`

Cette commande utilise notamment la requête SQL suivante :

`SELECT gn_dashboard.refresh_materialized_view_data();`

Mise à jour du module
---------------------

- Téléchargez la nouvelle version du module

wget https://github.com/PnX-SI/gn_module_dashboard/archive/X.Y.Z.zip
unzip X.Y.Z.zip
rm X.Y.Z.zip

- Renommez l'ancien et le nouveau répertoire

mv /home/`whoami`/gn_module_dashboard /home/`whoami`/gn_module_dashboard_old
mv /home/`whoami`/gn_module_dashboard-X.Y.Z /home/`whoami`/gn_module_dashboard

- Rapatriez le fichiers de configuration

cp /home/`whoami`/gn_module_dashboard_old/config/conf_gn_module.toml /home/`whoami`/gn_module_dashboard/config/conf_gn_module.toml

- Réinstaller les librairies et relancer la compilation en mettant à
jour la configuration

cd /home/`whoami`/geonature/frontend
npm install /home/`whoami`/gn_module_dashboard/frontend
cd /home/`whoami`/geonature/backend
source venv/bin/activate
pip install -e ~/gn_module_dashboard/
geonature update_module_configuration DASHBOARD
sudo systemctl restart geonature
cd ~/geonature/frontend
nvm use
npm run build

Licence
-------

- OpenSource - GPL-3.0
- Copyleft 2019-2022 - Parc National des Écrins

[![image](http://geonature.fr/img/logo-pne.jpg)](http://www.ecrins-parcnational.fr)
116 changes: 0 additions & 116 deletions README.rst

This file was deleted.

2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.1.0
1.2.0
13 changes: 0 additions & 13 deletions backend/commands/geonature_cmd.py

This file was deleted.

2 changes: 2 additions & 0 deletions backend/gn_module_dashboard/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
MODULE_CODE = "DASHBOARD"
MODULE_PICTO = "fa-bar-chart"
13 changes: 11 additions & 2 deletions backend/blueprint.py → backend/gn_module_dashboard/blueprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@

from .models import VSynthese, VTaxonomie, VFrameworks
from geonature.core.gn_synthese.models import Synthese, CorAreaSynthese
from geonature.core.ref_geo.models import LAreas, BibAreasTypes
from ref_geo.models import BibAreasTypes
from geonature.core.taxonomie.models import Taxref

# # import des fonctions utiles depuis le sous-module d'authentification
# from geonature.core.gn_permissions import decorators as permissions
# from geonature.core.gn_permissions.tools import get_or_fetch_user_cruved

blueprint = Blueprint("dashboard", __name__)
blueprint = Blueprint("dashboard", __name__, cli_group="dashboard")

# Obtenir le nombre d'observations et le nombre de taxons pour chaque année
# vm_synthese
Expand Down Expand Up @@ -403,3 +403,12 @@ def yearly_recap(year):
}

return jsonify(t)


@blueprint.cli.command()
def refresh_vm():
"""
Rafraîchissement des VM du dashboard
"""
DB.session.execute(func.gn_dashboard.refresh_materialized_view_data())
DB.session.commit()
Loading

0 comments on commit f03cc23

Please sign in to comment.