Skip to content

Commit

Permalink
Merge branch 'develop' - release 0.7.2
Browse files Browse the repository at this point in the history
  • Loading branch information
amandine-sahl committed Feb 27, 2024
2 parents b24a584 + 579d972 commit 24bdc9e
Show file tree
Hide file tree
Showing 13 changed files with 79 additions and 54 deletions.
14 changes: 10 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,16 +85,22 @@ source ~/geonature/backend/venv/bin/activate

#### Copie du dossier de configuration

Copier le dossier du sous-module dans le dossier `media` de GeoNature
Créer un dossier pour référencer les configurations des sous-modules dans GeoNature (`geonature/backend/media/monitorings`) :

```sh
cp -R <dossier du sous-module> ~/geonature/backend/media/monitorings/<module_code>
mkdir geonature/backend/media/monitorings
```

PS : Si l'on souhaite développer un sous-module il peut être pratique de plutôt faire un lien symbolique vers le dossier du sous-module, plutôt que de le copier dans le dossier `media` de GeoNature :
Créer un lien symbolique vers le dossier du sous-module dans le dossier `media` de GeoNature :

```sh
ln -s <dossier du sous module> ~/geonature/backend/media/monitorings/<module_code>
ln -s <chemin absolu du dossier du sous-module> ~/geonature/backend/media/monitorings/<nom du dossier du sous-module>
```

Exemple pour le module "test" :

```
ln -s ~/gn_module_monitoring/contrib/test ~/geonature/backend/media/monitorings/test
```

#### Lancer la commande d'installation du sous-module
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.7.1
0.7.2
4 changes: 2 additions & 2 deletions backend/gn_module_monitoring/command/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -297,14 +297,14 @@ def add_nomenclature(module_code):
DB.session.commit()


def installed_modules():
def installed_modules(session=None):
return [
{
"module_code": module.module_code,
"module_label": module.module_label,
"module_desc": module.module_desc,
}
for module in get_modules()
for module in get_modules(session)
]


Expand Down
26 changes: 6 additions & 20 deletions backend/gn_module_monitoring/config/generic/site.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,28 +53,14 @@
"base_site_description": {
"type_widget": "textarea",
"attribut_label": "Description"
},

"id_sites_group": {
"type_widget": "datalist",
"attribut_label": "Groupe de sites",
"type_util": "sites_group",
"keyValue": "id_sites_group",
"keyLabel": "sites_group_name",
"api": "__MONITORINGS_PATH/list/__MODULE.MODULE_CODE/sites_group?id_module=__MODULE.ID_MODULE&fields=id_sites_group&fields=sites_group_name",
"application": "GeoNature",
"required": false,
"hidden": true
},
},
"id_nomenclature_type_site": {
"type_widget": "datalist",
"type_widget": "text",
"attribut_label": "Type site",
"api": "nomenclatures/nomenclature/TYPE_SITE",
"application": "GeoNature",
"keyValue": "id_nomenclature",
"keyLabel": "label_fr",
"data_path": "values",
"type_util": "nomenclature",
"value": {
"code_nomenclature_type": "TYPE_SITE"
},
"required": true
},
"id_inventor": {
Expand All @@ -86,7 +72,7 @@
"keyLabel": "nom_complet",
"type_util": "user",
"required": true
},
},
"id_digitiser": {
"type_widget": "text",
"attribut_label": "Numérisateur",
Expand Down
38 changes: 25 additions & 13 deletions backend/gn_module_monitoring/config/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@

SUB_MODULE_CONFIG_DIR = Path(gn_config["MEDIA_FOLDER"]) / "monitorings/"

SITES_GROUP_CONFIG = {
"type_widget": "datalist",
"attribut_label": "Groupe de sites",
"type_util": "sites_group",
"keyValue": "id_sites_group",
"keyLabel": "sites_group_name",
"api": "__MONITORINGS_PATH/list/__MODULE.MODULE_CODE/sites_group?id_module=__MODULE.ID_MODULE&fields=id_sites_group&fields=sites_group_name",
"application": "GeoNature",
}

def monitoring_module_config_path(module_code):
return SUB_MODULE_CONFIG_DIR / module_code
Expand Down Expand Up @@ -193,19 +202,22 @@ def process_schema(object_type, config):
keys_s = list(specific.keys())
keys_g = list(generic.keys())
for key_s in keys_s:
for key_g in keys_g:
if key_s == key_g:
key = key_s

type_widget_s = specific[key].get("type_widget")
type_widget_g = generic[key].get("type_widget")

if type_widget_s and type_widget_s == type_widget_g:
generic[key] = copy_dict(specific[key])
else:
generic[key].update(copy_dict(specific[key]))

del specific[key]
# Cas particulier de sites_group
# définition spécifique du datalist
# récupérée depuis la constante SITES_GROUP_CONFIG
if key_s == "id_sites_group":
generic[key_s] = SITES_GROUP_CONFIG
if key_s in keys_g:
key = key_s

type_widget_s = specific[key].get("type_widget")
type_widget_g = generic[key].get("type_widget")

if type_widget_s and type_widget_s == type_widget_g:
generic[key] = copy_dict(specific[key])
else:
generic[key].update(copy_dict(specific[key]))
del specific[key]


def process_config_display(object_type, config):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def upgrade():
session = sa.orm.Session(bind=bind)

# Création des permissions disponibles pour chaque module
for module in installed_modules():
for module in installed_modules(session):
process_available_permissions(module["module_code"], session=session)

# ########
Expand Down
6 changes: 4 additions & 2 deletions backend/gn_module_monitoring/modules/repositories.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,16 +70,18 @@ def get_module(field_name, value, moduleCls=TMonitoringModules):
pass


def get_modules():
def get_modules(session=None):
"""
récupère les modules de protocole de suivi
renvoie un tableau de dictionnaires
:return:
"""

if not session:
session = DB.session
try:
res = DB.session.query(TMonitoringModules).order_by(TMonitoringModules.module_label).all()
res = session.query(TMonitoringModules).order_by(TMonitoringModules.module_label).all()

return res

Expand Down
7 changes: 1 addition & 6 deletions backend/gn_module_monitoring/monitoring/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ class TMonitoringVisits(TBaseVisits):
)
)


@geoserializable
class TMonitoringSites(TBaseSites):
__tablename__ = "t_site_complements"
Expand Down Expand Up @@ -181,11 +180,7 @@ class TMonitoringSites(TBaseSites):
)
)

geom_geojson = column_property(
select([func.st_asgeojson(TBaseSites.geom)])
.where(TBaseSites.id_base_site == id_base_site)
.correlate_except(TBaseSites)
)
geom_geojson = column_property(func.ST_AsGeoJSON(TBaseSites.geom), deferred=True)


@serializable
Expand Down
10 changes: 7 additions & 3 deletions contrib/test/config.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
{
"tree": {
"module": {
"site": {
"visit": {
"observation": null
"sites_group": {
"site": {
"visit": {
"observation": null
}
}
},
"site": {
}
}
}
Expand Down
5 changes: 5 additions & 0 deletions contrib/test/site.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"display_properties": [
"id_sites_group",
"base_site_name",
"base_site_code",
"base_site_description",
Expand Down Expand Up @@ -30,6 +31,10 @@
"cd_nomenclature": "1"
}
},
"id_sites_group": {
"required": true,
"hidden": false
},
"contact_name": {
"type_widget": "text",
"attribut_label": "contact"
Expand Down
16 changes: 15 additions & 1 deletion docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,31 @@
CHANGELOG
=========

0.7.2 (27-02-23)
------------------

**🚀 Nouveautés**

* Mise à jour de la documentation sur l'alimentation de la synthèse et l'installation d'un sous-module
* Ajout des groupes de sites dans le sous-module de `test`

**🐛 Corrections**

* Erreur lors de l'installation du module (#284)
* Corrections des permissions (export PDF, groupes de sites)

0.7.1 (05-12-23)
------------------

**🚀 Nouveautés**

* La gestion des permissions est définie pour chaque objet (module, site, visite) et l'objet ALL n'est plus pris en compte (#249). De fait les paramètres cruved des fichiers de configuration ainsi que permission object de `module.json` sont obsolètes.
* Ajout de tests


**🐛 Corrections**

* export avec un filtre par jeux de données (#241)
* Export avec un filtre par jeux de données (#241)


0.7.0 (2023-08-23)
Expand Down
1 change: 1 addition & 0 deletions docs/synthese.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ La vue pour 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)
* :warning: Les colonnes `id_observation`, `unique_id_sinp` et `ids_observers` (tableau d'id_role) sont obligatoires pour assurer la synchronisation entre la vue et la synthese
* À la configuration du sous-module (page du sous-module, cliquer
sur `éditer le module`), activer la synthèse.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
(click)="processExportPdf(exportPdfConfig)"
type="button"
class="mr-2"
*ngIf="currentUser?.moduleCruved[obj.objectType].E >= 1"
*ngIf="currentUser?.moduleCruved['module'].E >= 1"
>
<i class="fa fa-file-pdf-o"></i>&nbsp;
{{exportPdfConfig.label}}
Expand Down

0 comments on commit 24bdc9e

Please sign in to comment.