boatmovers init
This commit is contained in:
0
boatmovers/__init__.py
Normal file
0
boatmovers/__init__.py
Normal file
36
boatmovers/admin.py
Normal file
36
boatmovers/admin.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
from.models import Athlete, Crew, Race, Result
|
||||||
|
# Register your models here.
|
||||||
|
|
||||||
|
class AthleteInline(admin.StackedInline):
|
||||||
|
model = Athlete
|
||||||
|
|
||||||
|
class AthleteAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('first_name', 'last_name', 'birth_year')
|
||||||
|
|
||||||
|
class CrewInline(admin.StackedInline):
|
||||||
|
model = Athlete
|
||||||
|
|
||||||
|
class CrewAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('name',)
|
||||||
|
|
||||||
|
class RaceInline(admin.StackedInline):
|
||||||
|
model = Race
|
||||||
|
|
||||||
|
class RaceAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('name',)
|
||||||
|
|
||||||
|
class ResultInline(admin.StackedInline):
|
||||||
|
model = Result
|
||||||
|
|
||||||
|
class ResultAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('race','crew','order')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
admin.site.register(Athlete, AthleteAdmin)
|
||||||
|
admin.site.register(Crew, CrewAdmin)
|
||||||
|
admin.site.register(Race, RaceAdmin)
|
||||||
|
admin.site.register(Result, ResultAdmin)
|
||||||
6
boatmovers/apps.py
Normal file
6
boatmovers/apps.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class BoatmoversConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'boatmovers'
|
||||||
58
boatmovers/migrations/0001_initial.py
Normal file
58
boatmovers/migrations/0001_initial.py
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# Generated by Django 3.2.12 on 2022-06-22 17:41
|
||||||
|
|
||||||
|
import boatmovers.models
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
initial = True
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Athlete',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('first_name', models.CharField(max_length=200)),
|
||||||
|
('last_name', models.CharField(max_length=200)),
|
||||||
|
('club', models.CharField(max_length=200)),
|
||||||
|
('trueskill_mu', models.FloatField(default=25.0)),
|
||||||
|
('trueskill_sigma', models.FloatField(default=8.333)),
|
||||||
|
('birth_year', models.IntegerField(default=1972)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Crew',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=200)),
|
||||||
|
('athletes', models.ManyToManyField(to='boatmovers.Athlete')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Race',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('date', models.DateField(default=boatmovers.models.current_day)),
|
||||||
|
('crew_size', models.IntegerField(default=1)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Result',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('order', models.PositiveIntegerField()),
|
||||||
|
('crew', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='boatmovers.crew')),
|
||||||
|
('race', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='boatmovers.race')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='race',
|
||||||
|
name='resultlist',
|
||||||
|
field=models.ManyToManyField(through='boatmovers.Result', to='boatmovers.Crew'),
|
||||||
|
),
|
||||||
|
]
|
||||||
17
boatmovers/migrations/0002_alter_athlete_unique_together.py
Normal file
17
boatmovers/migrations/0002_alter_athlete_unique_together.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Generated by Django 3.2.12 on 2022-06-22 17:49
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('boatmovers', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='athlete',
|
||||||
|
unique_together={('first_name', 'last_name', 'birth_year')},
|
||||||
|
),
|
||||||
|
]
|
||||||
28
boatmovers/migrations/0003_auto_20220622_1753.py
Normal file
28
boatmovers/migrations/0003_auto_20220622_1753.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Generated by Django 3.2.12 on 2022-06-22 17:53
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('boatmovers', '0002_alter_athlete_unique_together'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='race',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(default='Race1', max_length=200),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='race',
|
||||||
|
name='resulturl',
|
||||||
|
field=models.URLField(null=True),
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='race',
|
||||||
|
unique_together={('date', 'name')},
|
||||||
|
),
|
||||||
|
]
|
||||||
0
boatmovers/migrations/__init__.py
Normal file
0
boatmovers/migrations/__init__.py
Normal file
48
boatmovers/models.py
Normal file
48
boatmovers/models.py
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
from django.db import models
|
||||||
|
import datetime
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
|
def current_day(ttz=None):
|
||||||
|
if ttz is None:
|
||||||
|
return (datetime.datetime.now(tz=timezone.utc)).date()
|
||||||
|
return datetime.datetime.utcnow().astimezone(pytz.timezone(ttz)).date()
|
||||||
|
|
||||||
|
# Create your models here.
|
||||||
|
class Athlete(models.Model):
|
||||||
|
first_name = models.CharField(max_length=200)
|
||||||
|
last_name = models.CharField(max_length=200)
|
||||||
|
club = models.CharField(max_length=200)
|
||||||
|
trueskill_mu = models.FloatField(default=25.)
|
||||||
|
trueskill_sigma = models.FloatField(default=8.333)
|
||||||
|
birth_year = models.IntegerField(default=1972)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
unique_together = ('first_name','last_name','birth_year')
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return u'{f} {l}'.format(f = self.first_name, l=self.last_name)
|
||||||
|
|
||||||
|
class Crew(models.Model):
|
||||||
|
athletes = models.ManyToManyField(Athlete)
|
||||||
|
name = models.CharField(max_length=200)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return u'{n}'.format(n=self.name)
|
||||||
|
|
||||||
|
class Race(models.Model):
|
||||||
|
name = models.CharField(max_length=200)
|
||||||
|
resulturl = models.URLField(null=True)
|
||||||
|
date = models.DateField(default=current_day)
|
||||||
|
resultlist = models.ManyToManyField(Crew,through='Result')
|
||||||
|
crew_size = models.IntegerField(default=1)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
unique_together = ('date','name')
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
class Result(models.Model):
|
||||||
|
crew = models.ForeignKey(Crew, on_delete=models.CASCADE)
|
||||||
|
race = models.ForeignKey(Race, on_delete=models.CASCADE)
|
||||||
|
order = models.PositiveIntegerField()
|
||||||
3
boatmovers/tests.py
Normal file
3
boatmovers/tests.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
3
boatmovers/views.py
Normal file
3
boatmovers/views.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
@@ -49,6 +49,7 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
|||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
'rowers',
|
'rowers',
|
||||||
'survey',
|
'survey',
|
||||||
|
'boatmovers',
|
||||||
# 'cvkbrno',
|
# 'cvkbrno',
|
||||||
'django.contrib.admin',
|
'django.contrib.admin',
|
||||||
'django.contrib.auth',
|
'django.contrib.auth',
|
||||||
|
|||||||
Reference in New Issue
Block a user