Skip to content

1.0.0

Latest
Compare
Choose a tag to compare
@amandine-sahl amandine-sahl released this 13 Dec 15:43

Nécessite GeoNature 2.15.0 (ou plus)

🚀 Nouveautés

  • Les sites (et groupes de sites) peuvent désormais être utilisés dans plusieurs protocoles (sous-modules) (#117)
    • Un gestionnaire de sites permet de gérer les sites (et groupes de sites) globalement et non plus uniquement à l'intérieur de chaque sous-module
    • Chaque site est associé à un ou plusieurs types de sites
    • Un gestionnaire des types de sites est disponible dans le module "Admin" de GeoNature
    • Des champs additionnels peuvent être définis pour chaque type de site pour pouvoir décrire des sites globalement, et pas uniquement par protocole
    • Chaque sous-module est associé à un ou plusieurs type de site pour définir les sites qui seront proposés dans le sous-module
    • Le modèle de données a évolué pour pouvoir associer un site à plusieurs types et un sous-module à plusieurs types de sites (suppression du champs id_nomenclature_type_site
    • Le modèle de données a évolué pour pouvoir associer un groupe de sites à plusieurs sous-modules
    • On distingue les permissions des utilisateurs dans chaque sous-module (protocole) sur chaque type d'objets (groupes de sites, sites et visites) et leurs permissions globales sur ces objets au niveau de tout le module. Pour qu'un utilisateur puisse consulter, ajouter ou modifier des groupes de sites ou des sites depuis le gestionnaire de sites, il faut lui ajouter des permissions globales sur ces objets.
  • Ajout de la prise en compte des portées au niveau des permissions (#92)
  • Ajout d'un champ observers_txt au niveau de la table des visites (#106)
  • Possibilité de définir plusieurs types de géométrie pour les sites d'un sous-module (#136)
  • Ajout de triggers de répercussion dans la Synthèse des données supprimées dans un sous-module de Monitoring (#286)
  • Ajout de tests unitaires
  • Suppression des commandes process_csv et process_all qui sont remplacées par la commande process_sql (#244)
  • [process_sql] Ajout d'un controle de conformité des fichiers qui ne peuvent pas contenir les commandes SQL suivantes : INSERT, DELETE, UPDATE, EXECUTE, TRUNCATE, ALTER, GRANT, COPY, PERFORM, CASCADE
  • Bascule de la table t_observations dans le coeur de GeoNature (#271)

🐛 Corrections

  • Correction d'une erreur silencieuse lors de la synchronisation avec la synthèse (liée à l'absence de la vue de synchro ou d'un champs obligatoire) (#286)
  • Mise à jour de SQLAlchemy version 1.3 à 1.4

⚠️ Notes de version

  • Si vous installez le module sans être passés par la version 0.7.0, éxecuter le script data\upgrade_modules_permissions.sql pour transférer les permissions et supprimer les permissions disponibles (après avoir exécuté la commande geonature monitorings update_module_available_permissions).
  • Si vous avez des modules installés, les éventuelles vues synthese.sql et export_csv.sql de vos sous-modules ne seront plus compatibles et bloqueront la migration. Il faut les supprimer avant la mise à jour et les recréer après mise à jour en répercutant les évolutions du modèle de données (#117)
  • Si vous aviez défini la propriété id_nomenclature_type_site dans la configuration de vos sous-modules, celle-ci n'existe plus et peut être remplacée par types_sites. Exemple :
    "types_site": {
        "default": [
          {
            "id_nomenclature_type_site": 686
          }
        ],
        "hidden": true
      }
  • Si vous le souhaitez, vous pouvez attribuer des permissions à vos utilisateurs au nouveau gestionnaire de sites et limiter les portées des permissions par objets et par sous-modules (https://github.com/PnX-SI/gn_module_monitoring?tab=readme-ov-file#permissions)
  • Les données supprimées depuis le module ne l'étaient pas dans la synthèse. Vérifiez qu'il n'y a aucune donnée orpheline dans la synthèse, pour les supprimer ensuite si vous le souhaitez :
    WITH monitoring_uuid AS (
      SELECT ms.uuid_base_site  AS unique_id_sinp
      FROM gn_monitoring.t_base_sites ms
      UNION
      SELECT mo.uuid_observation AS unique_id_sinp
      FROM gn_monitoring.t_observations mo
      UNION
      SELECT MOD.uuid_observation_detail  AS unique_id_sinp
      FROM gn_monitoring.t_observation_details mod 
    ), monitoring_module AS (
      SELECT id_module 
      FROM gn_commons.t_modules tm 
      WHERE TYPE = 'monitoring_module'
    ) 
    SELECT * 
    FROM  gn_synthese.synthese s  
    JOIN  monitoring_module m 
    ON s.id_module = m.id_module
    LEFT JOIN monitoring_uuid mu
    ON s.unique_id_sinp = mu.unique_id_sinp
    WHERE mu.unique_id_sinp IS NULL;