gn_module_monitoring
Module de suivi et monitoring de la suite GeoNature representant le plus grand volume de contributions personnelles : 329 commits et 19 PR (9 mergees) sur la periode 2022-2025. Le refactoring couvre les formulaires dynamiques, l'adaptation des modeles de donnees, l'evolution des routes et la mise en place de la gouvernance qualite CI.
🎯 Contexte et objectifs
- Faire évoluer des applications naturalistes en production sur des flux critiques: import, synthèse, monitoring, taxonomie et gestion des utilisateurs.
- Stabiliser les interfaces backend/frontend via des contrats API plus robustes, du filtrage/pagination, des formulaires dynamiques et une gestion d'erreurs homogène.
- Réduire les corrections manuelles côté métier en améliorant la cohérence des modèles de données, les retours d'administration et les parcours UI.
🧩 Conception
- #projet-gn-module-monitoring : PR mergées : #238 a rebasé la branche métier sur la base courante en réalignant configuration générique, services, routes et documentation ; #310 a corrigé le tri, le filtre et la pagination de la datatable Angular ; #328 a supprimé les duplications de
formValueentre modèle, composant et service ; #329 a normalisé le formatage frontend via Prettier et la documentation technique ; #330 a ajouté un workflow GitHub Actions de lint frontend ; #407 a ajouté des fixtures et tests backend sur les individus, marquages et schémas associés ; #433 a réduit la taille d'une requête sur les sites en réécrivant la route et en couvrant le correctif par tests ; #531 a corrigé la récupération de l'objet parent ; #540 a supprimé un chemin parent codé en dur dansseeDetails. PR ouvertes : #472 introduit des filtres dynamiques de synthèse pilotés par la configuration TOML ; #429 sécurise la suppression de site avec enfants côté backend et formulaire ; #252 ajoute une migration de journalisation sur les tables complémentaires.
💻 Développement
#projet-gn-module-monitoring : #433 a réduit une requête trop lourde sur les sites de base ; #407 a ajouté une base de tests backend sur les individus et marquages ; #252 ouvre une piste de journalisation métier par migration. Aucun extrait backend supplémentaire n'est retenu ici afin de réserver le budget d'extraits aux PR mergées les plus structurantes.
#projet-gn-module-monitoring : #328 a recentré l'initialisation du formulaire sur un schéma unique enrichi dynamiquement, avec tri explicite des champs et préparation d'un
metapartagé ; #310 a corrigé le comportement de la datatable ; #540 et #531 ont fiabilisé la navigation parent/enfant. Source: PR #328.this._configService .init(this.obj.moduleCode) .pipe( mergeMap(() => iif( () => this.obj.objectType == 'site' && this.obj.id != undefined, this._siteService.getTypesSiteByIdSite(this.obj.id), of(null) ) ) ) .subscribe((typesSites) => { this.queryParams = this._route.snapshot.queryParams || {}; this.bChainInput = this._configService.frontendParams()['bChainInput']; this.schemaGeneric = this.obj.schema(); this.obj.objectType == 'site' ? delete this.schemaGeneric['types_site'] : null; this.obj.id != undefined && this.obj.objectType == 'site' ? this.initExtraSchema(typesSites) : null; });
🏗️ Infrastructure et déploiement
#projet-gn-module-monitoring : #329 homogénéise le formatage frontend ; #330 ajoute un workflow GitHub Actions qui contrôle Black côté backend et Prettier côté frontend. Source: PR #330.
name: Lint on: [push, pull_request] jobs: backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Backend code formatting check (Black) uses: psf/black@stable with: src: "setup.py ./backend/gn_module_monitoring" frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 - name: Frontend code formatting check (Prettier) run: npm install prettier@~3.1.0 && npm run format:check
📈 Résultats
- Nb PR: 12
- Nb commits: 329
- Nb issues: 6
- Période: 12 décembre 2022 au 23 décembre 2025