Skip to content

2.12.0 - Cyathea borbonica 🌮

Compare
Choose a tag to compare
@bouttier bouttier released this 27 Mar 14:07
· 933 commits to develop since this release

⏩ En bref

  • Affichage agrĂ©gĂ© des observations dans la SynthĂšse (performances et lisibilitĂ©) (#1847 et #1878)
  • Filtres par dĂ©faut dans la SynthĂšse (#2261)
  • Optimisation des performances des exports de la SynthĂšse (#1434)
  • Optimisation du chargement des jeux de donnĂ©es dans le module MĂ©tadonnĂ©es pour en amĂ©liorer les performances (#2004)
  • IntĂ©gration par dĂ©faut de Taxref v16, BDC statuts v16 et rĂ©fĂ©rentiel de sensibilitĂ© v16
  • PossibilitĂ© de gĂ©rer les tables des applications mobiles et des modules depuis le module "Admin"
  • Configuration dynamique sans rebuild (#2205)
  • Centralisation de la configuration des modules dans GeoNature (#2423)
  • Historisation des suppressions dans la SynthĂšse, nĂ©cessaire pour GN2PG notamment (#789)
  • RĂ©organisation des dossiers pour simplifier la customisation et les mises Ă  jour (#2306)
  • Stabilisation de la dockerisation (#2206)
  • Refactorisation d'Occhab, module de rĂ©fĂ©rence et documentation dĂ©veloppeurs associĂ©e
  • Refactorisation des permissions (simplification, optimisation, centralisation, performances, tests)
  • Mise Ă  jour d'Angular en version 15 (#2154)

⚠ Notes de version

Si vous mettez Ă  jour GeoNature :

  • Si vous utilisez des modules spĂ©cifiques (hors Import, Export, Dashboard, Monitoring), vĂ©rifiez qu'ils disposent d'une version compatible avec GeoNature 2.12 (compatibilitĂ© Angular 15, rĂ©vision des permissions, configuration dynamique)
  • Si vous les utilisez, mettre Ă  jour les modules Import en version 2.1.0 (ou plus), Export en version 1.4.0, Dashboard en version 1.3.0 (ou plus) et Monitoring en version 0.5.0 (ou plus) avec la nouvelle procĂ©dure consistant uniquement Ă  tĂ©lĂ©charger, dĂ©zipper et renommer les dossiers des modules et de leur configuration
  • Mettez Ă  jour TaxHub en version 1.11 (mais pas une version superieure)
  • La vue gn_synthese.v_synthese_for_export dĂ©finissant la structure et le contenu des exports de la SynthĂšse a Ă©tĂ© modifiĂ©e pour ĂȘtre optimisĂ©e. Si vous l'aviez customisĂ©e, reportĂ©e vos modifications manuellement aprĂšs la mise Ă  jour de GeoNature
  • Suivez la procĂ©dure de mise Ă  jour classique de GeoNature (https://docs.geonature.fr/installation.html#mise-a-jour-de-l-application)
  • Le script migration.sh se charge de dĂ©placer automatiquement les diffĂ©rents fichiers suite Ă  la rĂ©organisation des dossiers (customisation, mĂ©dias, mobile, configuration centralisĂ©e des modules)
  • Les mĂ©dias (incluant les fichiers d'Occtax-mobile) sont dĂ©placĂ©s dans le dossier backend/media/
  • Il n'est plus nĂ©cessaire de rebuilder le frontend ni de recharger GeoNature manuellement Ă  chaque modification de la configuration de GeoNature ou de ses modules
  • Les taches automatisĂ©es sont dĂ©sormais gĂ©rĂ©es par Celery Beat et installĂ©es avec GeoNature. Si vous aviez mis en place des crons pour mettre Ă  jour les profils de taxons (ou les donnĂ©es du module Dashboard, ou les exports planifiĂ©s du module Export), supprimez les (dans /etc/cron.d/geonature ou crontab -e) car ils ne sont plus utiles
  • Il est fortement conseillĂ© d'utiliser la configuration Apache gĂ©nĂ©rĂ©e par dĂ©faut dans /etc/apache2/conf-available/geonature.conf et de l'inclure dans votre vhost (/etc/apache2/sites-available/geonature.conf et/ou /etc/apache2/sites-available/geonature-le-ssl.conf), en suivant la documentation dĂ©diĂ©e
  • Si vous aviez customisĂ© la page d’accueil de GeoNature en modifiant les composants frontend/src/custom/components/introduction/introduction.component.html et frontend/src/custom/components/footer/footer.component.html ceux-ci ont Ă©tĂ© supprimĂ©s au profit de paramĂštres de configuration. Il vous faut donc dĂ©placer votre customisation dans les paramĂštres TITLE, INTRODUCTION et FOOTER de la nouvelle section [HOME] de la configuration de GeoNature.
    Vous pouvez renseigner du code HTML sur plusieurs lignes en le plaçant entre triple quote ("""<b>Hello</b>""").
  • Les paramĂštres de configuration suivants ont Ă©tĂ© supprimĂ©s et doivent ĂȘtre retirĂ©s de votre fichier de configuration (config/geonature_config.toml) s’ils sont prĂ©sents :
    • LOGO_STRUCTURE_FILE (si vous aviez renommĂ© votre logo, dĂ©placez le dans geonature/custom/images/logo_structure.png)
    • UPLOAD_FOLDER (si vous l’aviez dĂ©placĂ©, renommez votre dossier d’upload en attachments et placez-le dans le dossier des mĂ©dias (geonature/backend/media/ par dĂ©faut, paramĂ©trable via MEDIA_FOLDER))
    • BASE_DIR
  • Occtax et champs additionnels :
    • Les champs additionnels de type bool_radio ne sont plus supportĂ©s.
      Si vous utilisiez ce type de widget dans vos champs additionnels d'Occtax, ils seront automatiquement remplacés par un widget de type radio.
      Vous devez changer le champs field_values sur le modĂšle suivant : [{"label": "Mon label vrai", "value": true }, {"label": "Mon label faux", "value": false }].
    • Les champs de formulaire de type radio, select, multiselect et checkbox, attendent dĂ©sormais une liste de dictionnaire {value, label} (voir doc des champs additionnels) (#2214)
      La rĂ©trocompatibilitĂ© avec des listes simples est maintenue, mais vous ĂȘtes invitĂ©s Ă  modifier ces champs dans le backoffice.
      Pour conserver le bon affichage lors de l'édition des données, renseignez l'ancienne valeur deux fois dans la clé value et la clé label.

✅ Exemple de procĂ©dure de mise Ă  jour depuis une version 2.11 : https://geonature.fr/documents/procedures/2023-04-GN-211to212.txt

🚀 NouveautĂ©s

  • Configuration dynamique du frontend : le frontend rĂ©cupĂšre dynamiquement sa configuration depuis le backend. Pour cela, il nĂ©cessite uniquement l’adresse de l’API_ENDPOINT qui doit ĂȘtre renseignĂ©e dans le fichier frontend/src/assets/config.json. En consĂ©quence, il n’est plus nĂ©cessaire de rebuilder le frontend lors d’une modification de la configuration de GeoNature ou de ses modules (#2205)
  • Personnalisation de la page d’accueil : ajout d’une section [HOME] contenant les paramĂštres TITLE, INTRODUCTION et FOOTER. Ceux-ci peuvent contenir du code HTML qui est chargĂ© dynamiquement avec la configuration, Ă©vitant ainsi la nĂ©cessitĂ© d’un rebuild du frontend (#2300)
  • SynthĂšse : AgrĂ©gation des observations ayant la mĂȘme gĂ©omĂ©trie pour ne les charger qu'une seule fois, et ainsi amĂ©liorer les performances et la lisibilitĂ© (#1847)
  • SynthĂšse : PossibilitĂ© d'afficher les donnĂ©es agrĂ©gĂ©es par maille (#1878). La fonctionnalitĂ© est configurable avec les paramĂštres suivant :
    [SYNTHESE]
        AREA_AGGREGATION_ENABLED = true
        AREA_AGGREGATION_TYPE = "M10"
        AREA_AGGREGATION_BY_DEFAULT = false    # affichage groupé par défaut
        AREA_AGGREGATION_LEGEND_CLASSES = .   # voir fichier de configuration d’exemple
  • SynthĂšse : PossibilitĂ© de dĂ©finir des filtres par dĂ©faut Ă  travers le paramĂštre SYNTHESE.DEFAULT_FILTERS (#2261)
  • MĂ©tadonnĂ©es : Chargement des jeux de donnĂ©es seulement quand on clique sur un cadre d'acquisition dans la liste des mĂ©tadonnĂ©es, pour amĂ©liorer les performances du module, en ne chargeant pas tous les jeux de donnĂ©es par dĂ©faut (#2004)
  • Champs additionnels : Les champs de formulaire de type radio, select, multiselect et checkbox, attendent dĂ©sormais une liste de dictionnaire {value, label} (voir doc des champs additionnels) (#2214)
  • Admin : PossibilitĂ© de gĂ©rer la table des applications mobiles (t_mobile_apps) dans le module "Admin" de GeoNature, notamment pour faciliter la gestion des mises Ă  jour de Occtax-mobile (#2352)
  • PossibilitĂ© de configurer les modules (picto, doc, label) directement depuis le module Admin (#2409)
  • PossibilitĂ© d’afficher un bouton de gĂ©olocalisation sur les cartes des formulaires Occtax et Occhab (#2338), activable avec le paramĂštre suivant :
    [MAPCONFIG]
        GEOLOCATION = true
  • Profils mis Ă  jour automatiquement par Celery Beat, toutes les nuits par dĂ©faut (#2412)
  • Ajout de l’intĂ©gration de Redis Ă  l'outil de logs Sentry, pour amĂ©liorer la prĂ©cisions des traces
  • PossibilitĂ© de dĂ©finir des rĂšgles de notifications par dĂ©faut, s’appliquant aux utilisateurs n’ayant pas de rĂšgle spĂ©cifique. Pour cela, il suffit d’insĂ©rer une rĂšgle dans la table gn_notifications.t_notifications_rules avec id_role=NULL (#2267)
  • Publication automatique de deux images Docker geonature-backend et geonature-frontend (#2206). Leur utilisation n’a pas encore Ă©tĂ© Ă©prouvĂ©e et leur utilisation en production n’est de ce fait pas recommandĂ©e.
  • AmĂ©lioration de la fiabilitĂ© du processus de migration
  • Ajout d’un index sur la colonne gn_synthese.cor_area_synthese.id_area. La colonne id_synthese est dĂ©jĂ  couverte par l’index multiple (id_synthese, id_area).
  • IntĂ©gration de TaxRef v16 et du rĂ©fĂ©rentiel de sensibilitĂ© associĂ© pour les nouvelles installations de GeoNature
  • Évolution de la gestion des fichiers statiques et des mĂ©dias (#2306) :
    • SĂ©paration des fichiers statiques (applicatif, fournis par GeoNature) et des fichiers mĂ©dias (gĂ©nĂ©rĂ©s par l’applications). Sont dĂ©placĂ©s du dossier backend/static vers le dossier backend/media les sous-dossiers suivants : medias, exports, geopackages, mobile, pdf, shapefiles. De plus, l’ancien dossier medias est renommĂ© attachments.
    • Ajout des paramĂštres de configuration suivants :
      ROOT_PATH = "dossier absolu du backend"
      STATIC_FOLDER = "static"    # dossier absolu ou relatif Ă  ROOT_PATH
      STATIC_URL = "/static"      # URL d’accùs aux fichiers statiques
      MEDIA_FOLDER = "media"      # dossier absolu ou relatif Ă  ROOT_PATH
      MEDIA_URL = "/media"        # URL d’accĂšs aux mĂ©dias
    • Ajout d’un dossier custom Ă  la racine de GeoNature et du paramĂštre associĂ© CUSTOM_STATIC_FOLDER. Les fichiers statiques rĂ©clamĂ©s sont cherchĂ©s en prioritĂ© dans le dossier custom, puis, si non trouvĂ©s, dans le dossier backend/static. Ainsi, si besoin de modifier un fichier statique, on placera un fichier du mĂȘme nom dans le dossier custom plutĂŽt que de modifier le fichier original (par exemple, custom/images/logo_structure.png). Voir la documentation sur la customisation.
    • Retrait du prĂ©fixe static/media/ aux chemins d’accĂšs des fichiers joints (colonne gn_commons.t_medias.media_path)
    • Retrait du prĂ©fixe static/mobile/ aux chemins d’accĂšs des APK des applications mobiles (colonne gn_commons.t_mobile_apps.relative_path_apk)
    • Certains fichiers statiques sont renommĂ©s :
      • static/css/custom.css → static/css/metadata_pdf_custom.css
    • Certains assets du frontend sont dĂ©placĂ©s vers les fichiers statiques du backend pour profiter du mĂ©canisme du customisation :
      • frontend/src/assets/custom.css → backend/static/css/frontend.css
      • frontend/src/favicon.ico → backend/static/images/favicon.ico
      • frontend/src/custom/images/login_background.jpg → backend/static/images/login_background.jpg
      • frontend/src/custom/images/logo_sidebar.jpg → backend/static/images/logo_sidebar.jpg
      • frontend/src/custom/images/logo_structure.png → backend/static/images/logo_structure.png
    • Le lien symbolique static/images/logo_structure.jpg est supprimĂ© au profit de l’utilisation de logo_sidebar.jpg
    • Les dĂ©placements mentionnĂ©s ci-dessus sont effectuĂ©s par le script migration.sh
  • Mise Ă  jour des dĂ©pendances :
    • TaxHub 1.11.1
    • UsersHub 2.3.3
    • UsersHub-authentification-module 1.6.5
    • Habref-api-module 0.3.2
    • Nomenclature-api-module 1.5.4
    • RefGeo 1.3.0
    • Utils-Flask-SQLAlchemy 0.3.2
    • Utils-Flask-SQLAlchemy-Geo 0.2.7
  • Refonte des permissions et suppression de la vue v_roles_permissions qui posait des problĂšmes de performances du nombre d’utilisateurs (#2196 et #2360)
  • La recherche du fichier de configuration des modules sous le nom {module_code}_config.toml (code du module en minuscule) dans le rĂ©pertoire de configuration de GeoNature devient prioritaire devant l’utilisation du fichier conf_gn_module.toml dans le rĂ©pertoire de configuration du module.
    Le script de mise à jour déplace les fichiers de configuration des modules vers le dossier centralisé de configuration de GeoNature (#2423)
  • Rechargement automatique de GeoNature quand on modifie un fichier de configuration d'un module dans l" dossier centralisĂ© (#2418)
  • Évolution de la configuration Apache /etc/apache2/conf-available/geonature.conf pour activer la compression gzip des rĂ©ponses de l’API (#2266) et pour servir les mĂ©dias et les fichiers statiques par Apache (#2430).
    À reporter dans votre configuration Apache si celle-ci n’importe pas cette configuration fournie par dĂ©faut.
  • Le script de mise Ă  jour (migration.sh) peut prendre en argument le chemin vers l’ancienne installation GeoNature.
    Il peut s’agir du mĂȘme dossier que la nouvelle installation GeoNature (cas d’une mise Ă  jour d’un dossier GeoNature avec Git).
  • Ajout d’une historisation des suppressions de la synthĂšse Ă  travers un trigger peuplant la nouvelle table gn_synthese.t_log_synthese (#789)
    Une API /synthese/log permet d’obtenir l’historique des insertions, mises à jour et suppressions dans la synthùse (notamment utile pour GN2PG).
  • AmĂ©lioration de la commande install-gn-module qui dĂ©tecte dĂ©sormais automatiquement le code du module (#2396)
  • SynthĂšse : Optimisation de la requĂȘte par statuts de protection (#2329)
  • Occtax : Optimisation des triggers de calcul automatique des altitudes pour ne les lancer que quand la gĂ©omĂ©trie du relevĂ© est modifiĂ©e (#2137)
  • Occtax et Occhab : Ajout d'une pastille indiquant le nombre de filtres activĂ©s
  • AmĂ©lioration du message renvoyĂ© Ă  l'utilisateur en cas de Timout (#2417)
  • AmĂ©lioration du composant gĂ©nĂ©rique de selection d'un jeu de donnĂ©es, en selectionnant automatiquement le JDD si la liste n'en contient qu'un et que le champs est obligatoire (#1049)

🐛 Corrections

  • SynthĂšse : changement du type de entity_source_pk_value de Integer Ă  Unicode dans le modĂšle pour correspondre Ă  la base de donnĂ©es
  • Correction de l’accĂšs public automatique activable avec ?access=public dans l’URL (#1650)
  • Correction de la fonctionnalitĂ© de rĂ©cupĂ©ration du mot de passe
  • Correction de la commande d’import du rĂ©fĂ©rentiel sensibilitĂ© pour correctement gĂ©rer les critĂšres comportementales
  • Occtax : correction du filtre sur les organismes
  • SynthĂšse : correction d’un problĂšme de performance de l’export (vue v_synthese_for_export) (#1434)
  • Correction d’un problĂšme de dĂ©tection de l’emplacement des modules avec les versions rĂ©centes de pip (#2365, #2364)
  • Occhab : correction du CRUVED sur la liste des jeux de donnĂ©es ouvert Ă  la saisie
  • Occtax : correction du contrĂŽle des dates du formulaire d’édition des relevĂ©s (#2318)
  • Correction des acteurs dans les exports PDF des mĂ©tadonnĂ©es (#2034)
  • Correction des graphiques dans les exports PDF des cadres d'acquisition (#2231)
  • Correction du script de synchronisation des mĂ©tadonnĂ©es depuis MTD INPN (#2314)
  • Correction de l'appel en double de la route des notifications (#2356)
  • Correction de l'URL vers la documentation depuis la page d'accueil
  • Correction du formulaire Occtax quand un relevĂ© n'a pas d'id_digitiser (#2421)
  • Correction de l'affichage des tooltips sur la liste des obsrvations de la SynthĂšse (#2348)
  • Correction du chargement des dates dĂ©but et date fin quand on modifie un relevĂ© dans Occtax ou une station dans OCchab (#2071)
  • Correction de la rĂ©cupĂ©ration des emails dans l'interface "Mon compte" (#2346)

đŸ’» DĂ©veloppement

  • Suppression du support du paramĂštre get_role du dĂ©corateur check_cruved_scope (#2162)
  • Suppression des paramĂštres redirect_on_expiration et redirect_on_invalid_token du dĂ©corateur check_cruved_scope (#2360)
  • Remplacement des usages du paramĂštre get_role du dĂ©corateur check_cruved_scope par get_scope dans le code de GeoNature et des modules contrib (#2164, #2199)
  • Suppression de multiples fonctions du package geonature.core.gn_permissions.tools, notamment la classe UserCruved ; se reporter Ă  la documentation dĂ©veloppeur afin de connaĂźtre les fonctions utilisables dans votre code (#2360)
  • Migration GeoNature : le venv est mis Ă  jour plutĂŽt que d’ĂȘtre supprimĂ© et recrĂ©Ă© (#2332)
  • Les erreurs de validation Marshmallow sont automatiquement converties en erreur 400 (BadRequest)
  • Les modules contrib doivent Ă©galement ĂȘtre formatĂ©s avec prettier
  • Fiabilisation des exports PDF (#2232)
  • Le composant de carte pnx-map a un nouvel input geolocation permettant d’activer le bouton de gĂ©olocalisation
  • Ajout du mixin geonature.utils.schema.CruvedSchemaMixin permettant d’ajouter la propriĂ©tĂ© (exclue par dĂ©faut) cruved Ă  un schĂ©ma Marshmallow
  • L’accĂšs aux paramĂštre de configuration ne se fait plus Ă  partir des fichiers gĂ©nĂ©rĂ©s AppConfig (GeoNature) ou ModuleConfig (modules), mais uniquement Ă  partir du ConfigService en charge de la rĂ©cupĂ©ration dynamique de la configuration (#2205).
  • Mise Ă  jour d'Angular version 12 Ă  15 et mise Ă  jour de nombreuses dĂ©pendances frontend (#2154)
  • Nettoyage des dĂ©pendances frontend de GeoNature. Si vous utilisiez certaines dĂ©pendances supprimĂ©es de GeoNature dans vos modules, vous devez les rajouter dans un fichier package-lock.json dans le dossier frontend de votre module.
  • Suppression de la route obsolĂšte /config
  • Ajout du context manager start_sentry_child permettant de rapporter dans les traces Sentry le temps d’exĂ©cution de certaines tĂąches coĂ»teuses (#2289)
  • Refactorisation du module Occhab (#2324) avec passage Ă  Marshmallow.
    Ajout à cette occasion de plusieurs fonctions et classes utilitaires au dépÎt Utils-Flask-SQLAlchemy-Geo.
    Suppression de la vue v_releve_occtax.
    Module de référence pour les développements et documentation associée (#2331)
  • DĂ©placement des routes gĂ©ographiques et des tests associĂ©s vers le dĂ©pĂŽt RefGeo (#2342)
  • AmĂ©lioration des tests des permissions
  • La fonction get_scopes_by_module cherche dans le contexte applicatif (variable g) la prĂ©sence de g.current_module et g.current_object lorsqu’ils ne sont pas fournis en paramĂštre.
  • Travaux en cours : compatibilitĂ© SQLAlchemy 1.3 & 1.4 / Flask-SQLAlchemy 2 & 3 (#1812)
  • Mise Ă  jour de Chart.js de la version 2 Ă  4
  • PossibilitĂ© de dĂ©finir l'URL par dĂ©faut de la documentation d'un module par un entrypoint nommĂ© doc_url

📝 Merci aux contributeurs

@ch-cbna / @bouttier / @TheoLechemia / @jpm-cbna / @bastyen / @Gaetanbrl / @VincentCauchois / @joelclems / @amandine-sahl
/ @andriacap / @mvergez / @DonovanMaillard / @dece / @lpofredc / @MathRdt / @gildeluermoz / @maximetoma / @pierre56 / @cecchi-a / @jbrieuclp / @camillemonchicourt