36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""
|
|
Accounts-module: gebruikersbeheer.
|
|
|
|
Bovenop Django's ingebouwde User leggen we een profiel met een rol en een
|
|
optionele koppeling aan een persoon (leerling/medewerker) uit de kern.
|
|
"""
|
|
from django.conf import settings
|
|
from django.db import models
|
|
|
|
|
|
class Gebruikersrol(models.TextChoices):
|
|
BEHEERDER = "beheerder", "Beheerder"
|
|
MEDEWERKER = "medewerker", "Medewerker"
|
|
OUDER = "ouder", "Ouder"
|
|
LEERLING = "leerling", "Leerling"
|
|
|
|
|
|
class Gebruikersprofiel(models.Model):
|
|
user = models.OneToOneField(
|
|
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="gebruikersprofiel"
|
|
)
|
|
rol = models.CharField(
|
|
"rol", max_length=16, choices=Gebruikersrol.choices, default=Gebruikersrol.MEDEWERKER
|
|
)
|
|
persoon = models.ForeignKey(
|
|
"core.Persoon", on_delete=models.SET_NULL, null=True, blank=True,
|
|
related_name="gebruikers",
|
|
help_text="Koppeling aan een leerling of medewerker uit de kern.",
|
|
)
|
|
|
|
class Meta:
|
|
verbose_name = "gebruikersprofiel"
|
|
verbose_name_plural = "gebruikersprofielen"
|
|
|
|
def __str__(self) -> str:
|
|
return f"{self.user.get_username()} ({self.get_rol_display()})"
|