Files
WrestleDesk/backend/templates/models.py
T
Andrej Spielmann 3fefc550fe 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
2026-03-26 13:24:57 +01:00

34 lines
1.2 KiB
Python

from django.db import models
class TrainingTemplate(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(blank=True)
category = models.CharField(max_length=20, choices=[
('warmup', 'Warm-up'),
('main', 'Main'),
('cooldown', 'Cool-down'),
], default='main')
club = models.ForeignKey('clubs.Club', on_delete=models.CASCADE, related_name='training_templates', null=True, blank=True)
exercises = models.ManyToManyField('exercises.Exercise', through='TemplateExercise', related_name='templates')
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
ordering = ['name']
def __str__(self):
return self.name
class TemplateExercise(models.Model):
template = models.ForeignKey(TrainingTemplate, on_delete=models.CASCADE)
exercise = models.ForeignKey('exercises.Exercise', on_delete=models.CASCADE)
order = models.PositiveIntegerField(default=0)
default_value = models.CharField(max_length=50, blank=True)
class Meta:
ordering = ['order']
unique_together = ['template', 'exercise']