You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.1 KiB

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})

Powered by TurnKey Linux.