models.py 3.9 KB

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