Mon commit initial
This commit is contained in:
122
gestion_vehicule/models.py
Normal file
122
gestion_vehicule/models.py
Normal file
@@ -0,0 +1,122 @@
|
||||
"""Modèles de l'application gestion_vehicule."""
|
||||
|
||||
from django.db import models
|
||||
from authentification.models import Profile
|
||||
|
||||
|
||||
class Vehicule(models.Model):
|
||||
"""Modèle représentant un véhicule."""
|
||||
|
||||
immatriculation = models.TextField(
|
||||
verbose_name="Immatriculation",
|
||||
max_length=15
|
||||
)
|
||||
image = models.ImageField(
|
||||
verbose_name="Image de la voiture", upload_to="vehicule_image"
|
||||
)
|
||||
disponible = models.BooleanField(
|
||||
verbose_name="Vehicule disponible ?",
|
||||
default=True)
|
||||
|
||||
def __str__(self):
|
||||
"""Retourne une représentation en chaîne de caractères du véhicule."""
|
||||
return f"{self.immatriculation}"
|
||||
|
||||
|
||||
class DemandeVehicule(models.Model):
|
||||
"""Modèle représentant une demande de véhicule."""
|
||||
|
||||
vehicule = models.ForeignKey(Vehicule, on_delete=models.CASCADE, null=True)
|
||||
nom_passager = models.ForeignKey(
|
||||
Profile,
|
||||
on_delete=models.SET_NULL,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name="passager_de_la_demande",
|
||||
)
|
||||
chauffeur = models.ForeignKey(
|
||||
Profile,
|
||||
on_delete=models.SET_NULL,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name="chauffeur_affecter_course",
|
||||
)
|
||||
lieu_depart = models.TextField(verbose_name="Lieu de départ")
|
||||
lieu_arrive = models.TextField(verbose_name="Lieu d'arrivée")
|
||||
date_heure = models.DateTimeField(verbose_name="Date et heure de départ")
|
||||
validation = models.BooleanField(
|
||||
verbose_name="Validation par le logisticien", default=None, null=True
|
||||
)
|
||||
motif_refus = models.TextField(verbose_name="Motifs du refus", default="")
|
||||
|
||||
def __str__(self):
|
||||
"""Retourne une représentation en chaîne de caractères."""
|
||||
return (f"DemandeVehicule {self.pk} -"
|
||||
f"{self.lieu_depart} à {self.lieu_arrive}"
|
||||
f" le {self.date_heure}"
|
||||
)
|
||||
|
||||
|
||||
class CarnetBord(models.Model):
|
||||
"""Modèle représentant le carnet de bord d'un véhicule."""
|
||||
|
||||
vehicule = models.ForeignKey(
|
||||
Vehicule, null=True, blank=True, on_delete=models.CASCADE
|
||||
)
|
||||
course = models.ForeignKey(
|
||||
DemandeVehicule, on_delete=models.CASCADE,
|
||||
default=None, null=True, blank=True
|
||||
)
|
||||
heure_effectif_depart = models.DateTimeField(
|
||||
verbose_name="Date et heure effectif de départ :",
|
||||
default=None,
|
||||
null=True,
|
||||
blank=True,
|
||||
)
|
||||
km_depart = models.PositiveIntegerField(
|
||||
verbose_name="Kilometrage de départ :", default=None, null=True,
|
||||
blank=True
|
||||
)
|
||||
heure_arrive = models.DateTimeField(
|
||||
verbose_name="Date et heure d'arrivee :", default=None, null=True,
|
||||
blank=True
|
||||
)
|
||||
km_arrive = models.PositiveIntegerField(
|
||||
verbose_name="Kilometrage d'arrivé :", default=0
|
||||
)
|
||||
course_termine = models.BooleanField(
|
||||
verbose_name="Course terminée :", default=False
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
"""Retourne une représentation en chaîne de caractères."""
|
||||
return f"CarnetBord {self.pk} - Vehicule: {self.vehicule}"
|
||||
|
||||
class CarnetCarburant(models.Model):
|
||||
"""Modèle représentant le carnet de carburant d'un véhicule."""
|
||||
|
||||
date = models.DateField(verbose_name="Date")
|
||||
nom_station = models.TextField(verbose_name="Nom de la station-service")
|
||||
type_carburant = models.TextField(
|
||||
verbose_name="Type du carburant",
|
||||
choices={
|
||||
"essence": "Essence",
|
||||
"gazoil": "Gazoil",
|
||||
},
|
||||
)
|
||||
litre = models.PositiveIntegerField(verbose_name="Litre")
|
||||
prix = models.PositiveIntegerField(verbose_name="Prix par litre (en GNF)")
|
||||
kilometrage = models.PositiveIntegerField(verbose_name="Kilometrage")
|
||||
observation = models.TextField(verbose_name="Observation")
|
||||
course = models.ForeignKey(
|
||||
DemandeVehicule,
|
||||
default=None,
|
||||
on_delete=models.CASCADE
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
"""Retourne une représentation en chaîne de caractères."""
|
||||
return (
|
||||
f"CarnetCarburant {self.pk} - Station: {self.nom_station} - "
|
||||
f"Date: {self.date}"
|
||||
)
|
||||
Reference in New Issue
Block a user