init
This commit is contained in:
44
backend-django/backend/models/calcul.py
Normal file
44
backend-django/backend/models/calcul.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
|
||||
from .pam import PAM
|
||||
|
||||
from .sous_vivier import SousVivier
|
||||
|
||||
|
||||
class StatutCalculChoices(models.TextChoices):
|
||||
AUCUN = 'AUCUN', 'aucun'
|
||||
EN_ATTENTE = 'EN_ATTENTE', 'en attente'
|
||||
EN_ATTENTE_ARRET = 'EN_ATTENTE_ARRET', "en attente d'arrêt"
|
||||
EN_COURS = 'EN_COURS', 'en cours'
|
||||
TERMINE = 'TERMINE', 'terminé'
|
||||
ERREUR_ADMINISTRE = 'ERREUR_ADMINISTRE','terminé en erreur administré',
|
||||
ERREUR_POSTE = 'ERREUR_POSTE', 'terminé en erreur poste',
|
||||
ERREUR = 'ERREUR', 'terminé en erreur'
|
||||
TERMINE_DE_FORCE = 'TERMINE_DE_FORCE', 'terminé de force'
|
||||
|
||||
|
||||
class Calcul(models.Model):
|
||||
"""
|
||||
Modèle pour le suivi des calculs
|
||||
On y intègre également le statut du calcul
|
||||
"""
|
||||
id = models.CharField(max_length=100, primary_key=True, default="")
|
||||
sous_vivier = models.ForeignKey(SousVivier, on_delete=models.CASCADE, verbose_name="Sous-vivier")
|
||||
pam = models.ForeignKey(PAM, on_delete=models.CASCADE, null=True, blank=True)
|
||||
ca_date_debut = models.DateTimeField('Date de début', null=True, blank=True)
|
||||
ca_date_fin = models.DateTimeField('Date de fin', null=True, blank=True)
|
||||
ca_statut = models.CharField('Statut', max_length=40, choices=StatutCalculChoices.choices)
|
||||
ca_statut_pourcentage = models.FloatField('Avancement (%)',default=0)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.CheckConstraint(
|
||||
name='%(app_label)s_%(class)s_ca_statut_valid',
|
||||
check=models.Q(ca_statut__in=StatutCalculChoices.values)
|
||||
),
|
||||
models.CheckConstraint(
|
||||
name='%(app_label)s_%(class)s_ca_statut_pourcentage_valid',
|
||||
check=Q(ca_statut_pourcentage__gte=0.0) & Q(ca_statut_pourcentage__lte=100.0)
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user