Gestion des pannes et des interventions techniques dans une boulangerie artisanale
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

há 3 anos
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})