from django.db import models from phonenumber_field.modelfields import PhoneNumberField # Create your models here. class department(models.Model): title = models.CharField(max_length=255) uebergeordnete_abteilung = models.ForeignKey( 'self', # Verweis auf dieselbe Tabelle on_delete=models.SET_NULL, # Verhalten beim Löschen der übergeordneten Abteilung null=True, # Darf leer sein (falls keine übergeordnete Abteilung existiert) blank=True, related_name='unterabteilungen' # Ermöglicht Rückbezug ) class Meta: verbose_name = ("Abteilung") verbose_name_plural = ("Abteilungen") def __str__(self): return self.title class congregation(models.Model): title = models.CharField(("Name"), max_length=150) class Meta: verbose_name = ("Versammlung") verbose_name_plural = ("Versammlungen") def __str__(self): return self.title def get_absolute_url(self): return reverse("congregation_detail", kwargs={"pk": self.pk}) class role(models.Model): name = models.CharField(("name"), max_length=50) class Meta: verbose_name = ("Rolle") verbose_name_plural = ("Rollen") def __str__(self): return self.name def get_absolute_url(self): return reverse("role_detail", kwargs={"pk": self.pk}) class contributors(models.Model): DAY_OPTIONS = [ ('MI', 'Mittwoch'), ('DO', 'Donnerstag'), ('FRV', 'Freitag vormittag'), ('FRN', 'Freitag nachmittag'), ('SAV', 'Samstag vormittag'), ('SAN', 'Samstag nachmittag'), ('SOV', 'Sonntag vormittag'), ('SON', 'Sonntag nachmittag'), ('SOA', 'Sonntag abbau'), ('MO', 'Montag'), ] name = models.CharField(("name"), max_length=50) firstname = models.CharField(("vorname"), max_length=50) birthday = models.DateField(("geburtstag"), auto_now=False, auto_now_add=False) congregation = models.ManyToManyField("main.congregation", verbose_name=("congregation"), null=True) roles = models.ManyToManyField("main.role", verbose_name=("role"), null=True) pioneer = models.BooleanField(("pionier")) gender = models.CharField("Geschlecht",max_length=20, choices=[("M", "Männlich"), ("W", "Weiblich")]) da_approval = models.BooleanField(("Freigabe"), default=False) deparment = models.ManyToManyField("main.department", verbose_name=("department"), null=True, blank=True) availability = models.CharField(("Verfügbarkeit"), max_length=50, choices=DAY_OPTIONS, blank=True) teamleader = models.BooleanField(("Leiter"), default=False) second_teamleader = models.BooleanField(("V-Leiter"), default=False) mobilnumber = PhoneNumberField(("Mobilnummer"), null=True, blank=True) email = models.EmailField(("E-Mail"), max_length=254, null=True, blank=True) class Meta: verbose_name = ("Helfer") verbose_name_plural = ("Helfer") def __str__(self): return f'{self.name}, {self.firstname}' def get_absolute_url(self): return reverse("contributors_detail", kwargs={"pk": self.pk})