From 4ae1d9925a062c7f99403c7c90a23e62f88aaf23 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 23 Aug 2026 12:19:16 +0000 Subject: [PATCH] fix(preventive): signal unknown task durations --- app_new/core/models/maintenance.py | 5 +++-- docs/ui-audit/PHASE21_REQUALIFICATION.md | 5 ++--- docs/ui-audit/PREVENTIVE_CATALOG_AUDIT.md | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app_new/core/models/maintenance.py b/app_new/core/models/maintenance.py index beb7cd5..9867d07 100644 --- a/app_new/core/models/maintenance.py +++ b/app_new/core/models/maintenance.py @@ -232,7 +232,8 @@ class Intervention(db.Model): Sinon si estimated_duration existe (duree manuelle), on l'utilise. Sinon on calcule la moyenne des durees reelles des interventions passees sur le meme equipement + meme type. - Fallback: 60 minutes par defaut. + Sans durée connue, retourne 0 : le moteur signale alors « durée à + renseigner » au lieu d'inventer une heure. """ if self.actual_duration: return self.actual_duration @@ -467,7 +468,7 @@ class LotTask(db.Model): ).scalar() if avg and avg > 0: return int(round(avg)) - return 60 + return 0 def __repr__(self): return f"" diff --git a/docs/ui-audit/PHASE21_REQUALIFICATION.md b/docs/ui-audit/PHASE21_REQUALIFICATION.md index de1cfad..0e04a16 100644 --- a/docs/ui-audit/PHASE21_REQUALIFICATION.md +++ b/docs/ui-audit/PHASE21_REQUALIFICATION.md @@ -68,9 +68,8 @@ création initiale passe par l'assistant, désormais indiqué depuis la liste de lots. La durée et la périodicité sont donc des champs UI de `LotTask`. Attention : -`LotTask.effective_duration()` conserve un fallback historique de 60 minutes -si aucune durée n'est saisie ; ce comportement doit rester visible et être -remplacé ou confirmé avant une validation métier définitive. La génération +`LotTask.effective_duration()` ne fabrique plus une durée de 60 minutes si +aucune durée n'est saisie : la tâche est signalée comme à renseigner. La génération préventive complète depuis un lot et deux équipements n'a pas été rejouée via UI dans cette passe : elle reste **NON VALIDÉE**. diff --git a/docs/ui-audit/PREVENTIVE_CATALOG_AUDIT.md b/docs/ui-audit/PREVENTIVE_CATALOG_AUDIT.md index 398205d..a105525 100644 --- a/docs/ui-audit/PREVENTIVE_CATALOG_AUDIT.md +++ b/docs/ui-audit/PREVENTIVE_CATALOG_AUDIT.md @@ -25,10 +25,10 @@ préventives. Le dump contient 36 catégories et 92 lots, déjà représentés d - les valeurs `jours_entre_interventions`, type, contrat, gestionnaire, déclenchement et politiques ont été conservées lorsqu'elles existent. -La valeur de 60 minutes de `LotTask.effective_duration()` n'est pas présente -dans le dump : c'est un fallback du code actuel, pas une donnée historique. -Elle reste temporairement compatible avec les anciennes données, mais une tâche -sans durée doit être signalée avant une validation métier définitive. +La valeur historique de 60 minutes n'est pas présente dans le dump : c'était +un fallback du code, pas une donnée métier. Il est maintenant supprimé : une +tâche sans durée retourne 0 et doit être renseignée avant planification +automatique. ## Catalogue embarqué