models.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. from django.db import models
  2. from django.utils.translation import gettext_lazy as _
  3. # Create your models here.
  4. class Schliessdienst(models.Model):
  5. class SchliesdienstType(models.TextChoices):
  6. Beauftragen = 'Beauftragen', _('Beauftragen')
  7. Bestellt = 'Bestellt', _('Bestellt')
  8. date = models.DateField()
  9. status = models.CharField( max_length=15,
  10. choices=SchliesdienstType.choices,
  11. default='Beauftragen',
  12. null=True,
  13. )
  14. mitarbeiter = models.CharField(max_length=20, blank=True, null=True)
  15. def __str__(self):
  16. return f"{self.date} - {self.status} - {self.mitarbeiter}"
  17. class Helper(models.Model):
  18. date = models.DateField()
  19. ben = models.PositiveSmallIntegerField()
  20. best = models.PositiveSmallIntegerField(blank=True, null=True)
  21. info = models.TextField(blank=True, null=True)
  22. def __str__(self):
  23. return f"{self.date} - {self.ben} - {self.best}"
  24. class Reinigung(models.Model):
  25. class ShiftType(models.TextChoices):
  26. Beauftragen = 'Beauftragen' # Placeholder for "None" if you're using it
  27. Bestellt = 'Bestellt'
  28. date = models.DateField()
  29. auftrag = models.CharField(
  30. max_length=12,
  31. choices=ShiftType.choices,
  32. default='',
  33. null=True,
  34. )
  35. info = models.TextField(blank=True, null=True)
  36. def __str__(self):
  37. return f"{self.date} - {self.auftrag}"
  38. class Employee(models.Model):
  39. name = models.CharField(max_length=100)
  40. daily_workhours = models.PositiveIntegerField()
  41. info = models.TextField(blank=True, null=True)
  42. def __str__(self):
  43. return self.name
  44. class Shift(models.Model):
  45. class ShiftType(models.TextChoices):
  46. NONE = 'N', _('None') # Placeholder for "None" if you're using it
  47. VACATION = 'U', _('Urlaub')
  48. CATERING = 'C', _('Catering')
  49. SICK = 'K', _('Krank')
  50. RB = 'RB', _('Rufbereitschaft')
  51. SD = 'SO', _('Sonderdienst')
  52. KK = 'KKH', _('KKH')
  53. ST = 'ST', _('Stapler')
  54. AH = 'AH', _('Ausser Haus')
  55. date = models.DateField()
  56. start = models.TimeField(null=True, blank=True)
  57. end = models.TimeField(null=True, blank=True)
  58. shifttype = models.CharField(
  59. max_length=3,
  60. choices=ShiftType.choices,
  61. default=ShiftType.NONE,
  62. null=True,
  63. )
  64. employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
  65. info = models.TextField(null=True, blank=True)
  66. def __str__(self):
  67. return f"{self.date} - {self.get_shifttype_display()}"
  68. class Location(models.Model):
  69. name = models.CharField(max_length=100)
  70. def __str__(self):
  71. return self.name
  72. class Event(models.Model):
  73. class EventType(models.TextChoices):
  74. NONE = '', _('None')
  75. AUFBAU = 'AU', _('Aufbau')
  76. ABBAU = 'AB', _('Abbau')
  77. UMBAU = 'UM', _('Umbau')
  78. VATAG = 'VA', _('VA-Tag')
  79. SPIELTAG = 'ST', _('Spieltag')
  80. TRAINING = 'TR', _('Training')
  81. date = models.DateField()
  82. name = models.CharField(max_length=100)
  83. event_type = models.CharField(
  84. max_length=2,
  85. choices=EventType.choices,
  86. default=EventType.NONE,
  87. null=True,
  88. )
  89. location = models.ForeignKey(Location, on_delete=models.CASCADE)
  90. cvd = models.ForeignKey(Employee, related_name='cvd', on_delete=models.SET_NULL, null=True, blank=True)
  91. cvt = models.ForeignKey(Employee, related_name='cvt', on_delete=models.SET_NULL, null=True, blank=True)
  92. info = models.TextField(null=True, blank=True)
  93. def __str__(self):
  94. return f"{self.date} - {self.name}"