gmao/docs/ui-audit/IMPLEMENTATION_PHASE15.md
root f78cddfd6f
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
docs(phase15): record complete test baseline
2026-08-22 23:30:25 +00:00

4.5 KiB
Raw Blame History

Phase 1.5 — raccord Pronote et revalidation des fondations

Date : 22 août 2026
Base : copie locale MariaDB issue de la VM
Version conservée : 0.1.0-dev.5
Commit de départ : e006f4f

Baseline

  • Working tree propre au démarrage.
  • Docker : gmao-flask:0.1.0-dev.5, MariaDB et Adminer sains.
  • /health/ : HTTP 200, base connectée, Pronote/watchdogs non configurés.
  • Migration courante : g1a2b3c4d5e6.
  • Données TEST_UI_* présentes et conservées ; alban inchangé.
  • Baseline global connue : 125 passed, 1 failed, 1 error ; l'échec et l'erreur concernent le lookback de configuration GMAO hors périmètre.

Pipeline Pronote

Avant

Le client get_lessons_for_room() récupérait et normalisait des cours, mais la page /pronote/planning/<room_id> les affichait directement et le bouton d'import était un simple message « non implémenté ». La disponibilité interne utilisait déjà RoomSchedule, mais aucun raccord réel ne persistait ces données.

Après

Le pipeline est désormais :

Pronote → get_lessons_for_room(strict=True) → normalize_pronote_lessons() → sync_pronote_schedules() → RoomSchedule → active_room_schedules() → disponibilité/planning

Les identifiants de cours absents sont déterministes (empreinte des attributs du créneau), les horodatages sont conservés et l'import est limité à la semaine demandée. Une erreur de récupération n'appelle pas la synchronisation et conserve donc les dernières données connues.

Pronote ne participe plus au calcul direct de disponibilité. Avec Pronote désactivé ou non configuré, le planning interne et la saisie manuelle restent utilisables.

Règles de synchronisation couvertes

  • manuel initial non protégé : supplanté par un Pronote correspondant, sans doublon actif ;
  • horaire Pronote modifié : ancienne ligne manuelle supplantée, nouvelle ligne Pronote active ;
  • manuel protégé : jamais écrasé ; conflit conservé et affiché ;
  • rapprochement ambigu : aucune fusion automatique, conflit à valider ;
  • créneau absent d'une synchronisation : disabled, jamais supprimé ;
  • suppression limitée à la semaine synchronisée, sans désactiver les semaines voisines ;
  • panne Pronote : planning et fraîcheur précédents conservés ;
  • retour Pronote : last_synced_at avancé et lignes réconciliées.

La page de planning interne affiche l'origine en termes métier, la protection et les conflits. Une action permet de protéger/déprotéger un manuel et de désactiver un créneau Pronote sans effacer son historique.

Centre documentaire revalidé

La V1 a été retestée avec documents intervention, équipement et produit/FDS : agrégation, recherche par titre/fichier/contexte, source/type, pagination, fichier manquant, chemin hors racine, source inconnue et restriction de permission source. Aucun fichier n'est copié.

Tests

  • tests Phase 1.5 planning/documents : 7 passed ;
  • suites Phase 1 ciblées (P1, équipements, nettoyage, interventions) : 26 passed ;
  • tests unitaires de version : passants.

Suite complète : 129 passed, 1 failed, 1 error. Le seul échec et l'erreur de teardown restent le test historique de lookback GMAO hors périmètre ; aucun nouvel échec n'a été introduit.

Les contrôles HTTP sur la copie VM locale après rebuild ont donné 200 pour /health/, /documents/, /documents/fds, /planning/rooms, /planning/rooms/new, /pronote/planning et /pronote/planning/2. La création réelle du créneau TEST_UI_PLANNING_PROTECTED a été vérifiée, avec protection persistée en base.

Responsive et accessibilité ciblés

Les nouvelles pages utilisent les composants responsive existants (table- responsive, table-responsive-stack), des labels associés aux champs, des boutons textuels et des messages métier. Aucun navigateur instrumenté n'est disponible dans cet environnement ; une vérification visuelle manuelle aux trois tailles demandées reste à effectuer avant déploiement distant.

Données ajoutées

  • TEST_UI_PLANNING_PROTECTED dans TEST_UI_CLASSE_101, semaine du 07/09/2026, vendredi 14:0016:00, réunion protégée.

Aucune donnée TEST_UI_* n'a été supprimée.

Limitations et hors périmètre

  • aucune modification des identifiants/secrets Pronote ;
  • aucune Phase 2 (optimisation de journée, solveur, multi-techniciens) ;
  • aucune modification alban, watchdog, contexte GMAO, ENT ou Outlook ;
  • résolution humaine des conflits uniquement ;
  • le test historique lookback GMAO reste volontairement non corrigé.