fix(preventive): signal unknown task durations
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run

This commit is contained in:
root 2026-08-23 12:19:16 +00:00
parent 0f6770611f
commit 4ae1d9925a
3 changed files with 9 additions and 9 deletions

View file

@ -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"<LotTask {self.num_tache or self.id}>"

View file

@ -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**.

View file

@ -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é