diff --git a/authentication/migrations/0003_alter_family_name_alter_familymembership_family_and_more.py b/authentication/migrations/0003_alter_family_name_alter_familymembership_family_and_more.py new file mode 100644 index 0000000..cbf8e1d --- /dev/null +++ b/authentication/migrations/0003_alter_family_name_alter_familymembership_family_and_more.py @@ -0,0 +1,86 @@ +# Generated by Django 6.0.6 on 2026-07-05 13:50 + +import django.db.models.deletion +import phonenumber_field.modelfields +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('authentication', '0002_alter_family_name'), + ] + + operations = [ + migrations.AlterField( + model_name='family', + name='name', + field=models.CharField(blank=True, max_length=255, verbose_name='name'), + ), + migrations.AlterField( + model_name='familymembership', + name='family', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='memberships', to='authentication.family', verbose_name='family'), + ), + migrations.AlterField( + model_name='familymembership', + name='member', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='family_memberships', to='authentication.member', verbose_name='member'), + ), + migrations.AlterField( + model_name='familymembership', + name='role', + field=models.CharField(choices=[('parent', 'parent'), ('child', 'child'), ('guardian', 'guardian'), ('other', 'other')], default='parent', max_length=255, verbose_name='role'), + ), + migrations.AlterField( + model_name='member', + name='date_of_birth', + field=models.DateField(blank=True, null=True, verbose_name='date of birth'), + ), + migrations.AlterField( + model_name='member', + name='email', + field=models.EmailField(blank=True, max_length=254, verbose_name='email'), + ), + migrations.AlterField( + model_name='member', + name='emergency_phone', + field=phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, null=True, region=None, verbose_name='emergency phone number'), + ), + migrations.AlterField( + model_name='member', + name='first_name', + field=models.CharField(max_length=150, verbose_name='first name'), + ), + migrations.AlterField( + model_name='member', + name='last_name', + field=models.CharField(max_length=150, verbose_name='last name'), + ), + migrations.AlterField( + model_name='member', + name='phone', + field=phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, null=True, region=None, verbose_name='phone number'), + ), + migrations.AlterField( + model_name='member', + name='user', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='member', to=settings.AUTH_USER_MODEL, verbose_name='user'), + ), + migrations.AlterField( + model_name='user', + name='email', + field=models.EmailField(db_index=True, max_length=254, unique=True, verbose_name='email'), + ), + migrations.AlterField( + model_name='user', + name='is_active', + field=models.BooleanField(default=True, verbose_name='is active?'), + ), + migrations.AlterField( + model_name='user', + name='is_staff', + field=models.BooleanField(default=False, verbose_name='is staff?'), + ), + ] diff --git a/authentication/models.py b/authentication/models.py index 0d30574..1ac4fd5 100644 --- a/authentication/models.py +++ b/authentication/models.py @@ -14,10 +14,10 @@ from .managers import UserManager class User(AbstractBaseUser, PermissionsMixin): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) - email = models.EmailField(unique=True, db_index=True) + email = models.EmailField(_("email"), unique=True, db_index=True) - is_staff = models.BooleanField(default=False) - is_active = models.BooleanField(default=True) + is_staff = models.BooleanField(_("is staff?"), default=False) + is_active = models.BooleanField(_("is active?"), default=True) objects = UserManager() @@ -46,7 +46,7 @@ class User(AbstractBaseUser, PermissionsMixin): class Family(UUIDModel): - name = models.CharField(max_length=255, blank=True) + name = models.CharField(_("name"), max_length=255, blank=True) class Meta: verbose_name = _("family") @@ -77,16 +77,16 @@ class Family(UUIDModel): class Member(UUIDModel): - user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, related_name="member", null=True, blank=True) + user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, related_name="member", null=True, blank=True, verbose_name=_("user")) - first_name = models.CharField(max_length=150) - last_name = models.CharField(max_length=150) + first_name = models.CharField(_("first name"), max_length=150) + last_name = models.CharField(_("last name"), max_length=150) - date_of_birth = models.DateField(null=True, blank=True) + date_of_birth = models.DateField(_("date of birth"), null=True, blank=True) - email = models.EmailField(blank=True) - phone = PhoneNumberField(null=True, blank=True) - emergency_phone = PhoneNumberField(null=True, blank=True) + email = models.EmailField(_("email"), blank=True) + phone = PhoneNumberField(_("phone number"), null=True, blank=True) + emergency_phone = PhoneNumberField(_("emergency phone number"), null=True, blank=True) class Meta: verbose_name = _("member") @@ -124,9 +124,9 @@ class FamilyMembership(models.Model): GUARDIAN = "guardian", _("guardian") OTHER = "other", _("other") - family = models.ForeignKey(Family, on_delete=models.CASCADE, related_name="memberships") - member = models.ForeignKey(Member, on_delete=models.CASCADE, related_name="family_memberships") - role = models.CharField(max_length=255, choices=FamilyRole.choices, default=FamilyRole.PARENT) + family = models.ForeignKey(Family, on_delete=models.CASCADE, related_name="memberships", verbose_name=_("family")) + member = models.ForeignKey(Member, on_delete=models.CASCADE, related_name="family_memberships", verbose_name=_("member")) + role = models.CharField(_("role"), max_length=255, choices=FamilyRole.choices, default=FamilyRole.PARENT) class Meta: verbose_name = _("family membership")