Extend members app: add fields to Member model, update migrations, and configure admin display

This commit is contained in:
2026-01-04 22:42:54 +01:00
parent a38a813865
commit 769f18dac8
8 changed files with 169 additions and 3 deletions

View File

@@ -1,15 +1,34 @@
from django.conf import settings
from django.db import models
from django.utils.translation import gettext_lazy as _
from phonenumber_field.modelfields import PhoneNumberField
from rules import is_superuser
from rules.contrib.models import RulesModel
from members.rules import is_member_manager
class MemberManager(models.Manager):
def get_queryset(self) -> models.QuerySet:
return super().get_queryset().select_related("user")
class Member(RulesModel):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="member", verbose_name=_("user"))
family = models.ManyToManyField("self", symmetrical=True, blank=True, verbose_name=_("family"))
family_members = models.ManyToManyField("self", symmetrical=True, blank=True, verbose_name=_("family members"))
birthday = models.DateField(_("birthday"), blank=True, null=True)
license = models.CharField(_("license"), max_length=20, blank=True, null=True)
phone_number = PhoneNumberField(_("phone number"), blank=True, null=True)
emergency_phone_number = PhoneNumberField(_("emergency phone number"), blank=True, null=True)
access_token = models.CharField(_("access token"), max_length=255, blank=True, null=True)
created = models.DateTimeField(auto_now_add=True, verbose_name=_("created"))
updated = models.DateTimeField(auto_now=True, verbose_name=_("updated"))
objects = MemberManager()
class Meta:
verbose_name = _("member")