fix(preventive): signal unknown task durations
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
This commit is contained in:
parent
0f6770611f
commit
4ae1d9925a
3 changed files with 9 additions and 9 deletions
|
|
@ -232,7 +232,8 @@ class Intervention(db.Model):
|
||||||
Sinon si estimated_duration existe (duree manuelle), on l'utilise.
|
Sinon si estimated_duration existe (duree manuelle), on l'utilise.
|
||||||
Sinon on calcule la moyenne des durees reelles des interventions
|
Sinon on calcule la moyenne des durees reelles des interventions
|
||||||
passees sur le meme equipement + meme type.
|
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:
|
if self.actual_duration:
|
||||||
return self.actual_duration
|
return self.actual_duration
|
||||||
|
|
@ -467,7 +468,7 @@ class LotTask(db.Model):
|
||||||
).scalar()
|
).scalar()
|
||||||
if avg and avg > 0:
|
if avg and avg > 0:
|
||||||
return int(round(avg))
|
return int(round(avg))
|
||||||
return 60
|
return 0
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"<LotTask {self.num_tache or self.id}>"
|
return f"<LotTask {self.num_tache or self.id}>"
|
||||||
|
|
|
||||||
|
|
@ -68,9 +68,8 @@ création initiale passe par l'assistant, désormais indiqué depuis la liste de
|
||||||
lots.
|
lots.
|
||||||
|
|
||||||
La durée et la périodicité sont donc des champs UI de `LotTask`. Attention :
|
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
|
`LotTask.effective_duration()` ne fabrique plus une durée de 60 minutes si
|
||||||
si aucune durée n'est saisie ; ce comportement doit rester visible et être
|
aucune durée n'est saisie : la tâche est signalée comme à renseigner. La génération
|
||||||
remplacé ou confirmé avant une validation métier définitive. La génération
|
|
||||||
préventive complète depuis un lot et deux équipements n'a pas été rejouée via
|
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**.
|
UI dans cette passe : elle reste **NON VALIDÉE**.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
- les valeurs `jours_entre_interventions`, type, contrat, gestionnaire,
|
||||||
déclenchement et politiques ont été conservées lorsqu'elles existent.
|
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
|
La valeur historique de 60 minutes n'est pas présente dans le dump : c'était
|
||||||
dans le dump : c'est un fallback du code actuel, pas une donnée historique.
|
un fallback du code, pas une donnée métier. Il est maintenant supprimé : une
|
||||||
Elle reste temporairement compatible avec les anciennes données, mais une tâche
|
tâche sans durée retourne 0 et doit être renseignée avant planification
|
||||||
sans durée doit être signalée avant une validation métier définitive.
|
automatique.
|
||||||
|
|
||||||
## Catalogue embarqué
|
## Catalogue embarqué
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue