gn_module_monitoring

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 formValue entre 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 dans seeDetails. 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 meta partagé ; #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
🌐 Voir le projet

Technologies utilisées

Frontend
Angular
RxJS
Qualite / Tests
ESLint
Prettier
Backend
Flask
Python
DevOps
GitLab CI/CD
Bases de donnees (SGBD & SQL)
PostgreSQL
Design Patterns & Architecture
SQLAlchemy