Gestion des pannes et des interventions techniques dans une boulangerie artisanale
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

models.py 3.9 KiB

3 år sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. from django.db import models
  2. from django.utils.translation import gettext_lazy as _
  3. from django.template.defaultfilters import date as _date
  4. from django.urls import reverse
  5. class Fournisseur(models.Model):
  6. nom_fournisseur = models.CharField('nom', max_length=50)
  7. class Meta:
  8. verbose_name = _("fournisseur")
  9. verbose_name_plural = _("fournisseurs")
  10. def __str__(self):
  11. return self.nom_fournisseur
  12. def get_absolute_url(self):
  13. return reverse("fournisseur_detail", kwargs={"pk": self.pk})
  14. class Technicien(models.Model):
  15. nom_technicien = models.CharField('nom', max_length=50)
  16. ref_fournisseur = models.ForeignKey("maintenance.Fournisseur",
  17. verbose_name=_("fournisseur"),
  18. on_delete=models.PROTECT)
  19. class Meta:
  20. verbose_name = _("technicien")
  21. verbose_name_plural = _("techniciens")
  22. def __str__(self):
  23. return self.nom_technicien
  24. def get_absolute_url(self):
  25. return reverse("technicien_detail", kwargs={"pk": self.pk})
  26. class Machine(models.Model):
  27. numero_serie = models.CharField('numéro de série', max_length=20)
  28. nom_machine = models.CharField('nom', max_length=50)
  29. ref_fournisseur = models.ForeignKey("maintenance.Fournisseur",
  30. verbose_name=_("fournisseur"),
  31. on_delete=models.PROTECT)
  32. class Meta:
  33. verbose_name = _("machine")
  34. verbose_name_plural = _("machines")
  35. def __str__(self):
  36. return self.nom_machine
  37. def get_absolute_url(self):
  38. return reverse("machine_detail", kwargs={"pk": self.pk})
  39. class Panne(models.Model):
  40. moment_panne = models.DateTimeField('moment de la panne',
  41. auto_now_add=True)
  42. description_panne = models.TextField('description', default='-')
  43. ref_machine = models.ForeignKey("maintenance.Machine",
  44. verbose_name=_("machine"),
  45. on_delete=models.PROTECT)
  46. class Meta:
  47. verbose_name = _("Panne")
  48. verbose_name_plural = _("Pannes")
  49. def __str__(self):
  50. if len(self.description_panne) <= 20:
  51. short_description = self.description_panne
  52. else:
  53. short_description = self.description_panne[:20]
  54. return _date(self.moment_panne,
  55. 'SHORT_DATETIME_FORMAT') + " | " + short_description
  56. def get_absolute_url(self):
  57. return reverse("panne_detail", kwargs={"pk": self.pk})
  58. class Intervention(models.Model):
  59. moment_intervention = models.DateTimeField('moment de l\'intervention',
  60. auto_now_add=True)
  61. ref_panne = models.ForeignKey("maintenance.Panne",
  62. verbose_name=_("panne"),
  63. on_delete=models.PROTECT)
  64. ref_technicien = models.ForeignKey("maintenance.Technicien",
  65. verbose_name=_("technicien"),
  66. on_delete=models.PROTECT,
  67. null=True,
  68. blank=True)
  69. description_intervention = models.TextField('description',
  70. blank=True,
  71. null=True)
  72. class Meta:
  73. verbose_name = _("intervention")
  74. verbose_name_plural = _("interventions")
  75. def __str__(self):
  76. if len(self.description_intervention) <= 20:
  77. short_description = self.description_intervention
  78. else:
  79. short_description = self.description_intervention[:20]
  80. return _date(self.moment_intervention,
  81. 'SHORT_DATETIME_FORMAT') + " | " + short_description
  82. def get_absolute_url(self):
  83. return reverse("intervention_detail", kwargs={"pk": self.pk})