parent
688c59e8b1
commit
65e902a079
@ -1,3 +1,35 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
import main.models as MainDB
|
||||||
|
|
||||||
# Register your models here.
|
# Register your models here.
|
||||||
|
@admin.register(MainDB.contributors)
|
||||||
|
class MainDB_contributorsAdmin(admin.ModelAdmin):
|
||||||
|
|
||||||
|
list_display = ('id', 'da_approval', 'teamleader', 'second_teamleader', 'gender', 'full_name', 'birthday_year', 'get_congregation', 'pioneer', 'get_deparment', 'mobilnumber', 'email')
|
||||||
|
|
||||||
|
list_filter = ('gender', 'roles', 'deparment', 'congregation')
|
||||||
|
|
||||||
|
def get_congregation(self, obj):
|
||||||
|
# Gebe eine durch Komma getrennte Liste der Namen der contributors zurück
|
||||||
|
return ", ".join([str(congregation) for congregation in obj.congregation.all()])
|
||||||
|
get_congregation.short_description = 'Versammlung' # Optional: Benennung der Spalte
|
||||||
|
|
||||||
|
def get_deparment(self, obj):
|
||||||
|
# Gebe eine durch Komma getrennte Liste der Namen der contributors zurück
|
||||||
|
return ", ".join([str(deparment) for deparment in obj.deparment.all()])
|
||||||
|
get_deparment.short_description = 'Abteilung' # Optional: Benennung der Spalte
|
||||||
|
|
||||||
|
# Methode, um den vollständigen Namen zu kombinieren
|
||||||
|
def full_name(self, obj):
|
||||||
|
return f"{obj.name}, {obj.firstname}"
|
||||||
|
full_name.short_description = 'Name' # Spaltenüberschrift im Admin ändern
|
||||||
|
|
||||||
|
# Methode, um nur das Jahr des Birthdays anzuzeigen
|
||||||
|
def birthday_year(self, obj):
|
||||||
|
return obj.birthday.year if obj.birthday else None
|
||||||
|
birthday_year.short_description = 'Geburtsjahr'
|
||||||
|
|
||||||
|
|
||||||
|
admin.site.register(MainDB.department)
|
||||||
|
admin.site.register(MainDB.congregation)
|
||||||
|
admin.site.register(MainDB.role)
|
||||||
@ -1,3 +1,90 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
|
from phonenumber_field.modelfields import PhoneNumberField
|
||||||
|
|
||||||
|
|
||||||
# Create your models here.
|
# 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})
|
||||||
Loading…
Reference in new issue