Initial commit: WrestleDesk full project

- Django backend with DRF (clubs, wrestlers, trainers, exercises, templates, trainings, homework, locations, leistungstest)
- Next.js 16 frontend with React, Shadcn UI, Tailwind
- JWT authentication
- Full CRUD for all entities
- Calendar view for trainings
- Homework management system
- Leistungstest tracking
This commit is contained in:
Andrej Spielmann
2026-03-26 13:24:57 +01:00
commit 3fefc550fe
256 changed files with 38295 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
club = models.ForeignKey('clubs.Club', on_delete=models.SET_NULL, null=True, blank=True, related_name='user_profiles')
def __str__(self):
return f"{self.user.username} Profile"
class UserPreferences(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='preferences')
preferred_locale = models.CharField(max_length=10, default='de')
default_view = models.CharField(max_length=10, default='list')
wrestlers_view = models.CharField(max_length=10, default='list')
wrestlers_items_per_page = models.IntegerField(default=10)
wrestlers_filters = models.JSONField(default=dict, blank=True)
trainers_view = models.CharField(max_length=10, default='list')
trainers_items_per_page = models.IntegerField(default=10)
trainers_filters = models.JSONField(default=dict, blank=True)
exercises_view = models.CharField(max_length=10, default='list')
exercises_items_per_page = models.IntegerField(default=10)
exercises_filters = models.JSONField(default=dict, blank=True)
trainings_view = models.CharField(max_length=10, default='list')
trainings_items_per_page = models.IntegerField(default=10)
trainings_filters = models.JSONField(default=dict, blank=True)
homework_view = models.CharField(max_length=10, default='list')
homework_items_per_page = models.IntegerField(default=10)
homework_filters = models.JSONField(default=dict, blank=True)
def __str__(self):
return f"{self.user.username} Preferences"