Extend members app: add fields to Member model, update migrations, and configure admin display
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user