models.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. def __str__(self):
  30. return self.name
  31. class Shift(models.Model):
  32. class ShiftType(models.TextChoices):
  33. NONE = 'N', _('None') # Placeholder for "None" if you're using it
  34. VACATION = 'U', _('Urlaub')
  35. CATERING = 'C', _('Catering')
  36. SICK = 'K', _('Krank')
  37. RB = 'RB', _('Rufbereitschaft')
  38. SD = 'SO', _('Sonderdienst')
  39. KK = 'KKH', _('KKH')
  40. ST = 'ST', _('Stapler')
  41. AH = 'AH', _('Ausser Haus')
  42. date = models.DateField()
  43. start = models.TimeField(null=True, blank=True)
  44. end = models.TimeField(null=True, blank=True)
  45. shifttype = models.CharField(
  46. max_length=3,
  47. choices=ShiftType.choices,
  48. default=ShiftType.NONE,
  49. null=True,
  50. )
  51. employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
  52. def __str__(self):
  53. return f"{self.date} - {self.get_shifttype_display()}"
  54. class Location(models.Model):
  55. name = models.CharField(max_length=100)
  56. def __str__(self):
  57. return self.name
  58. class Event(models.Model):
  59. class EventType(models.TextChoices):
  60. NONE = '', _('None')
  61. AUFBAU = 'AU', _('Aufbau')
  62. ABBAU = 'AB', _('Abbau')
  63. UMBAU = 'UM', _('Umbau')
  64. VATAG = 'VA', _('VA-Tag')
  65. SPIELTAG = 'ST', _('Spieltag')
  66. TRAINING = 'TR', _('Training')
  67. date = models.DateField()
  68. name = models.CharField(max_length=100)
  69. event_type = models.CharField(
  70. max_length=2,
  71. choices=EventType.choices,
  72. default=EventType.NONE,
  73. null=True,
  74. )
  75. location = models.ForeignKey(Location, on_delete=models.CASCADE)
  76. cvd = models.ForeignKey(Employee, related_name='cvt', on_delete=models.SET_NULL, null=True, blank=True)
  77. cvt = models.ForeignKey(Employee, related_name='cvd', on_delete=models.SET_NULL, null=True, blank=True)
  78. def __str__(self):
  79. return f"{self.date} - {self.name}"