from django.db import models from django.utils.translation import gettext_lazy as _ from django.template.defaultfilters import date as _date from django.urls import reverse class Fournisseur(models.Model): nom_fournisseur = models.CharField('nom', max_length=50) class Meta: verbose_name = _("fournisseur") verbose_name_plural = _("fournisseurs") def __str__(self): return self.nom_fournisseur def get_absolute_url(self): return reverse("fournisseur_detail", kwargs={"pk": self.pk}) class Technicien(models.Model): nom_technicien = models.CharField('nom', max_length=50) ref_fournisseur = models.ForeignKey("maintenance.Fournisseur", verbose_name=_("fournisseur"), on_delete=models.PROTECT) class Meta: verbose_name = _("technicien") verbose_name_plural = _("techniciens") def __str__(self): return self.nom_technicien def get_absolute_url(self): return reverse("technicien_detail", kwargs={"pk": self.pk}) class Machine(models.Model): numero_serie = models.CharField('numéro de série', max_length=20) nom_machine = models.CharField('nom', max_length=50) ref_fournisseur = models.ForeignKey("maintenance.Fournisseur", verbose_name=_("fournisseur"), on_delete=models.PROTECT) class Meta: verbose_name = _("machine") verbose_name_plural = _("machines") def __str__(self): return self.nom_machine def get_absolute_url(self): return reverse("machine_detail", kwargs={"pk": self.pk}) class Panne(models.Model): moment_panne = models.DateTimeField('moment de la panne', auto_now_add=True) description_panne = models.TextField('description', default='-') ref_machine = models.ForeignKey("maintenance.Machine", verbose_name=_("machine"), on_delete=models.PROTECT) class Meta: verbose_name = _("Panne") verbose_name_plural = _("Pannes") def __str__(self): if len(self.description_panne) <= 20: short_description = self.description_panne else: short_description = self.description_panne[:20] return _date(self.moment_panne, 'SHORT_DATETIME_FORMAT') + " | " + short_description def get_absolute_url(self): return reverse("panne_detail", kwargs={"pk": self.pk}) class Intervention(models.Model): moment_intervention = models.DateTimeField('moment de l\'intervention', auto_now_add=True) ref_panne = models.ForeignKey("maintenance.Panne", verbose_name=_("panne"), on_delete=models.PROTECT) ref_technicien = models.ForeignKey("maintenance.Technicien", verbose_name=_("technicien"), on_delete=models.PROTECT, null=True, blank=True) description_intervention = models.TextField('description', blank=True, null=True) class Meta: verbose_name = _("intervention") verbose_name_plural = _("interventions") def __str__(self): if len(self.description_intervention) <= 20: short_description = self.description_intervention else: short_description = self.description_intervention[:20] return _date(self.moment_intervention, 'SHORT_DATETIME_FORMAT') + " | " + short_description def get_absolute_url(self): return reverse("intervention_detail", kwargs={"pk": self.pk})