Refactor accounts app into authentication and club apps

- Split the accounts app into new authentication and club apps for better separation of concerns.
- Migrate the custom User, Member, and Family models to the authentication app.
- Introduce Club and ClubMembership models in the club app.
- Refactor Family model to use UUID as the primary key and consolidate family-role relationships into a new FamilyMembership model.
- Update tests, managers, and migrations to align with the new structure.
This commit is contained in:
2026-07-02 09:40:06 +02:00
parent aa2c6329b9
commit 8f71bb74c0
23 changed files with 473 additions and 326 deletions

21
clubmanager/base.py Normal file
View File

@@ -0,0 +1,21 @@
import uuid
from django.db import models
class UUIDModel(models.Model):
"""Abstract base class giving every model a UUID primary key"""
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
class Meta:
abstract = True
class ClubScopedModel(UUIDModel):
"""Abstract base for entities owned by a single club (tenant root)."""
club = models.ForeignKey("club.Club", on_delete=models.CASCADE, related_name="%(class)ss")
class Meta:
abstract = True

View File

@@ -44,11 +44,10 @@ INSTALLED_APPS = [
"django.contrib.messages",
"django.contrib.staticfiles",
"phonenumber_field",
"accounts",
"club.apps.ClubConfig",
"authentication.apps.AuthenticationConfig",
]
AUTH_USER_MODEL = "accounts.User"
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
@@ -61,6 +60,8 @@ MIDDLEWARE = [
ROOT_URLCONF = "clubmanager.urls"
AUTH_USER_MODEL = "authentication.User"
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",