3fefc550fe
- 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
42 lines
2.2 KiB
Python
42 lines
2.2 KiB
Python
# Generated by Django 4.2.29 on 2026-03-23 12:15
|
|
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
import django.utils.timezone
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
('exercises', '0003_alter_exercise_media'),
|
|
('trainings', '0005_training_club_and_more'),
|
|
('wrestlers', '0002_alter_wrestler_license_scan_alter_wrestler_photo'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='TrainingLogEntry',
|
|
fields=[
|
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
('reps', models.PositiveIntegerField()),
|
|
('sets', models.PositiveIntegerField(default=1)),
|
|
('time_minutes', models.PositiveIntegerField(blank=True, null=True)),
|
|
('weight_kg', models.DecimalField(blank=True, decimal_places=2, max_digits=5, null=True)),
|
|
('rating', models.PositiveSmallIntegerField(choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)], default=3)),
|
|
('notes', models.TextField(blank=True)),
|
|
('logged_at', models.DateTimeField(default=django.utils.timezone.now)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True)),
|
|
('exercise', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='training_logs', to='exercises.exercise')),
|
|
('training', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='training_logs', to='trainings.training')),
|
|
('wrestler', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='training_logs', to='wrestlers.wrestler')),
|
|
],
|
|
options={
|
|
'ordering': ['-logged_at'],
|
|
'indexes': [models.Index(fields=['wrestler'], name='training_lo_wrestle_67cef4_idx'), models.Index(fields=['exercise'], name='training_lo_exercis_73fb9d_idx'), models.Index(fields=['logged_at'], name='training_lo_logged__9c003b_idx'), models.Index(fields=['training'], name='training_lo_trainin_b74b31_idx')],
|
|
},
|
|
),
|
|
]
|