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