gmao/docs/development/STATUS_020_DEV3.md
root 31434c5ca2
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
Validate checkpoint B UI workflows
2026-08-23 18:10:40 +00:00

93 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CURRENT VERSION: 0.2.0-dev.1
CURRENT CHECKPOINT: B — validation fonctionnelle finale
CURRENT COMMIT: à committer (Centre de configuration, menu, tests HTTP B)
CURRENT MIGRATION: m8b9c0d1e2f3 (appliquée Docker)
DOCKER VERSION: gmao-college:0.2.0-dev.1 (reconstruite, healthy, MariaDB connectée)
LAST FULL TEST: 166 passed, 1 failed, 1 error — uniquement lookback/configuration GMAO historique et son teardown
LAST TARGETED TEST: 11 passed (navigation, profil HTTP, bulk 200, horaires UI, Centre de configuration)
BLOCKERS: navigateur Chromium disponible mais aucune session admin locale documentée ; validation responsive visuelle non exécutée
NEXT ACTION: committer/pousser, puis maintenir dev.1 tant que la session navigateur admin locale nest pas démontrée
## Avancement
- [x] mémoire de chantier créée ;
- [x] baseline Git/Docker/version vérifié ;
- [x] service commun introduit pour les routes fiche et wizard ;
- [x] lot facultatif accepté par les routes wizard ;
- [x] suppression de la recherche par nom dans le wizard ;
- [x] fallback Intervention 60 minutes supprimé ;
- [x] tests ciblés A (28 passants) ;
- [x] audit A1-A7 ;
- [x] checkpoint A commit/version ;
- [ ] checkpoint B ;
- [ ] checkpoint C ;
- [ ] checkpoint D ;
- [ ] checkpoint E.
## Reprise
Lire ROADMAP_020_DEV3.md et DECISIONS_020_DEV3.md, puis reprendre sur NEXT ACTION. Ne pas commencer B avant clôture documentée de A.
## Détail checkpoint A
- Le service `core.services.equipment_creation.create_equipment` est utilisé par la fiche Equipment et les deux parcours wizard.
- Catégorie et lot sont facultatifs dans les créations wizard ; une catégorie/lot explicitement invalide reste rejeté.
- Les instances créées sont conservées en mémoire ; aucune recherche post-création par nom n'est effectuée.
- Le fallback silencieux de 60 minutes des interventions est remplacé par une durée inconnue (`0`) quand aucune estimation n'est disponible.
- Les nouveaux tests unitaires couvrent l'équipement sans lot et les noms dupliqués.
- Le test historique `test_gmao_config_caps_lookback_at_one_year` échoue encore (plafond 9000 au lieu de 8760) et son teardown échoue sur `gmao_context.user_id` NULL ; aucune nouvelle régression observée.
## Après versionnement A
- Version applicative : `0.2.0-dev.1`.
- La version est mise à jour dans `VERSION`, dans les valeurs par défaut de `docker-compose.yml` et dans le test de version.
- Le checkpoint B n'est pas commencé ; aucune migration nouvelle n'a été créée.
- Docker doit être reconstruit avec `GMAO_VERSION=0.2.0-dev.1` avant toute validation UI de cette version.
- Reconstruction effectuée : image `gmao-college:0.2.0-dev.1`, migrations lancées au démarrage, `/health/` retourne `healthy`, version `0.2.0-dev.1`, MariaDB connectée.
- Le compose signale encore `health: starting` pendant sa fenêtre initiale ; l'endpoint applicatif est déjà sain.
- Aucun fichier non commité après le commit de statut suivant.
## Reprise checkpoint B
- [x] exigences Centre de configuration permanent ajoutées à la roadmap ;
- [x] configuration progressive et intégrations facultatives documentées ;
- [x] horaires technicien explicitement rattachés à l'utilisateur et absence de fallback rappelée ;
- [x] hiérarchie Site → Building → Zone → Room et HousingUnit documentée ;
- [x] non-régression TaskExecutionSegment/interruption documentée ;
- [x] exigences détaillées des checkpoints C, D et E ajoutées à la roadmap sans les commencer ;
- [ ] audit B1 des modèles et parcours ;
- [ ] décision RoomType enrichi ou RoomProfile ;
- [x] décision documentée : RoomProfile séparé de RoomType ;
- [x] migration B écrite : k6f7a8b9c0d1 puis l7a8b9c0d1e2 ;
- [x] implémentation initiale des profils, propositions, surfaces et Centre de configuration ;
- [x] association facultative d'un profil aux locaux et sélection dans le bulk ;
- [x] tests ciblés B et pytest complet sans nouvelle régression ;
- [x] rebuild Docker et application des migrations ;
- [x] validation HTTP authentifiée des profils : création UI, preview, application, réapplication, modification sans mutation ;
- [x] validation HTTP authentifiée des horaires de deux techniciens ;
- [x] Centre de configuration rendu et liens principaux vérifiés ;
- [x] charge 200 locaux ;
- [ ] validation responsive visuelle avec compte admin local ;
- [ ] checkpoint B validé et version `0.2.0-dev.2`.
## Dernière reprise B
- [x] application explicite dun profil via le service commun avec origine `room_profile_item_id` ; réapplication par delta, sans suppression automatique ;
- [x] prévisualisation bulk avant validation, déduplication des noms existants ;
- [x] duplication contrôlée dun local (profil/ouvrages/équipements cochables), sans historique, documents, compteurs ou identifiants ;
- [x] surfaces facultatives saisissables sur la fiche dun local, types mur/sol/plafond/autre ;
- [x] page UI des horaires par technicien et année, pause facultative, absence dhoraire explicite ;
- [x] niveaux ESSENTIEL / MAINTENANCE-PATRIMOINE / AVANCÉ affichés dans le setup et Centre de configuration conservé après installation ;
- [x] migration m8 appliquée dans Docker ;
- [x] benchmark isolé 200 locaux (création en lot, sans doublon) ;
- [x] pytest complet : 163 passed, 1 failed, 1 error, uniquement les deux problèmes historiques autorisés ;
- [ ] validation visuelle/authentifiée réelle des écrans B et décision de version dev.2.
## Mesures et limites de reprise
- Docker reconstruit avec `GMAO_VERSION=0.2.0-dev.1`; `/health/` : healthy, MariaDB connectée, version `0.2.0-dev.1`.
- Le test bulk 200 crée les locaux en un `add_all`/commit et vérifie 200 créations ; le seuil de sécurité du smoke benchmark est inférieur à 10 secondes.
- Chromium Playwright est installé (`~/.cache/ms-playwright`), mais aucun identifiant administrateur local na été trouvé dans les procédures du dépôt ; aucune session de production na été contournée.
- Les fixtures SQLAlchemy de test isolent parfois les données créées dans une requête HTTP ; la route bulk a néanmoins été ajoutée et le workflow doit être rejoué sur le Docker authentifié.
- La version reste volontairement `0.2.0-dev.1` tant que cette preuve utilisateur n'est pas apportée.
- Le Centre de configuration a été corrigé pour les contrats (utilisation des colonnes ORM réelles) et les liens profils/bulk/horaires ont été ajoutés au nouveau menu.