diff --git a/.drone.yml b/.drone.yml
index 33ec70cb80..3422477f2c 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -18,7 +18,7 @@ steps:
{{#success build.status}}
Ultron build {{build.number}} succeeded. Good job.
{{else}}
- Ultron build {{build.number}} failed. Fix me please.
+ Ultron build {{build.number}} failed. Fix me please. More info : https://drone.grimbox.be/Sulley/Ultron/{{build.number}}
{{/success}}
when:
status:
diff --git a/templates/ultron/dashboard/dashboard.html b/templates/ultron/dashboard/dashboard.html
index 66cdd57c67..41947b9c39 100644
--- a/templates/ultron/dashboard/dashboard.html
+++ b/templates/ultron/dashboard/dashboard.html
@@ -11,7 +11,7 @@
- Welcome to Ultron v0.30
(last update : 16-12-2021)
+ Welcome to Ultron v0.31
(last update : 19-12-2021)
This application is there to help us manage the gymnasts (evolution, evaluation, ...). It is not perfect so feel free to make improvement proposals, bug reports, … by sending me an
email.
diff --git a/ultron/followup/admin.py b/ultron/followup/admin.py
index a6ba01833e..5d8b8953d0 100644
--- a/ultron/followup/admin.py
+++ b/ultron/followup/admin.py
@@ -2,85 +2,98 @@ from django.contrib import admin
from django.db.models import fields
from config.views import search
-from .models import Chrono, LearnedSkill, Point, Accident, MindState, GymnastHasRoutine, NumberOfRoutineDone, HeightWeight
+from .models import (
+ Chrono,
+ LearnedSkill,
+ Point,
+ Accident,
+ MindState,
+ GymnastHasRoutine,
+ NumberOfRoutineDone,
+ HeightWeight,
+)
from django_extensions.admin import ForeignKeyAutocompleteAdmin
class ChronoAdmin(ForeignKeyAutocompleteAdmin):
model = Chrono
- list_display = ('date', 'gymnast', 'tof', 'type')
- list_filter = ('type', )
+ list_display = ("date", "gymnast", "tof", "type")
+ list_filter = ("type",)
# search_fields = ('gymnast', 'routine')
- autocomplete_fields = ['gymnast']
+ autocomplete_fields = ["gymnast"]
- related_search_fields = {
- 'gymnast': ('last_name', 'first_name')
- }
+ related_search_fields = {"gymnast": ("last_name", "first_name")}
class LearnedSkillAdmin(admin.ModelAdmin):
model = LearnedSkill
- list_display = ('gymnast', 'skill', 'cando', 'date')
- list_filter = ('gymnast', 'skill', 'cando')
- search_fields = ('gymnast', 'skill')
- autocomplete_fields = ['gymnast', 'skill']
+ list_display = ("gymnast", "skill", "cando", "date")
+ list_filter = ("gymnast", "skill", "cando")
+ search_fields = ("gymnast", "skill")
+ autocomplete_fields = ["gymnast", "skill"]
class PointAdmin(admin.ModelAdmin):
model = Point
list_display = (
- 'gymnast',
- 'point_execution',
- 'point_difficulty',
- 'point_time_of_flight',
- 'total',
+ "gymnast",
+ "point_execution",
+ "point_difficulty",
+ "point_time_of_flight",
+ "total",
)
- ordering = ('gymnast',)
- list_filter = ('gymnast', 'event', 'routine_type')
+ ordering = ("gymnast",)
+ list_filter = ("gymnast", "event", "routine_type")
class AccidentAdmin(admin.ModelAdmin):
model = Accident
- fields = ('date', 'gymnast', 'skill', 'informations') # educative
- list_display = ('date', 'gymnast', 'skill') # educative
- list_filter = ('date',)
- search_fields = ('date', 'gymnast') # educative
- autocomplete_fields = ['gymnast'] # educative
+ fields = ("date", "gymnast", "skill", "informations") # educative
+ list_display = ("date", "gymnast", "skill") # educative
+ list_filter = ("date",)
+ search_fields = ("date", "gymnast") # educative
+ autocomplete_fields = ["gymnast"] # educative
class MindStateAdmin(admin.ModelAdmin):
model = MindState
- fields = ('gymnast', 'date', 'score', 'informations')
- list_display = ('date', 'gymnast', 'score')
- list_filter = ('date', 'gymnast')
+ fields = ("gymnast", "date", "score", "informations")
+ list_display = ("date", "gymnast", "score")
+ list_filter = ("date", "gymnast")
class GymnastHasRoutineAdmin(ForeignKeyAutocompleteAdmin):
model = GymnastHasRoutine
- list_display = ('gymnast', 'routine', 'routine_type', 'datebegin', 'dateend')
- list_filter = ('gymnast', 'routine_type')
- search_fields = ('gymnast', 'routine')
- autocomplete_fields = ('gymnast', 'routine')
+ list_display = ("gymnast", "routine", "routine_type", "datebegin", "dateend")
+ list_filter = ("gymnast", "routine_type")
+ search_fields = ("gymnast", "routine")
+ autocomplete_fields = ("gymnast", "routine")
class NumberOfRoutineDoneAdmin(ForeignKeyAutocompleteAdmin):
model = NumberOfRoutineDone
- list_display = ('gymnast', 'routine_type', 'date', 'number_of_successes', 'number_of_try')
- list_filter = ('gymnast', 'routine_type')
+ list_display = (
+ "gymnast",
+ "routine_type",
+ "date",
+ "number_of_successes",
+ "number_of_try",
+ )
+ list_filter = ("gymnast", "routine_type")
class HeightWeightAdmin(ForeignKeyAutocompleteAdmin):
model = HeightWeight
- list_display = ('gymnast', 'height', 'weight', 'date')
- list_filter = ('gymnast',)
+ list_display = ("gymnast", "height", "weight", "date")
+ list_filter = ("gymnast",)
admin.site.register(Accident, AccidentAdmin)
diff --git a/ultron/followup/apps.py b/ultron/followup/apps.py
index 62e96ba5b6..54a60d0936 100644
--- a/ultron/followup/apps.py
+++ b/ultron/followup/apps.py
@@ -2,5 +2,5 @@ from django.apps import AppConfig
class FollowupConfig(AppConfig):
- default_auto_field = 'django.db.models.BigAutoField'
- name = 'ultron.followup'
+ default_auto_field = "django.db.models.BigAutoField"
+ name = "ultron.followup"
diff --git a/ultron/followup/forms.py b/ultron/followup/forms.py
index 329ee2c55e..3d98d33fe7 100644
--- a/ultron/followup/forms.py
+++ b/ultron/followup/forms.py
@@ -5,64 +5,72 @@ from datetime import date
from django.db import models
from django.forms import fields, widgets
-from .models import Chrono, LearnedSkill, Point, Accident, MindState, GymnastHasRoutine, HeightWeight
+from .models import (
+ Chrono,
+ LearnedSkill,
+ Point,
+ Accident,
+ MindState,
+ GymnastHasRoutine,
+ HeightWeight,
+)
+
class ChronoForm(forms.ModelForm):
class Meta:
model = Chrono
- fields = ('gymnast', 'date', 'type', 'score_type', 'score', 'tof')
+ fields = ("gymnast", "date", "type", "score_type", "score", "tof")
widgets = {
- 'gymnast': forms.HiddenInput(),
- 'date': forms.TextInput(
+ "gymnast": forms.HiddenInput(),
+ "date": forms.TextInput(
attrs={
- 'class': 'form-control datepicker',
- 'placeholder': date.today().strftime('%Y-%m-%d'),
- 'value': date.today().strftime('%Y-%m-%d'),
+ "class": "form-control datepicker",
+ "placeholder": date.today().strftime("%Y-%m-%d"),
+ "value": date.today().strftime("%Y-%m-%d"),
}
),
- 'type': forms.Select(attrs={'class': 'form-control'}),
- 'score_type': forms.Select(attrs={'class': 'form-control'}),
- 'score': forms.TextInput(
- attrs={'class': 'form-control', 'placeholder': 'xx,xxx'}
+ "type": forms.Select(attrs={"class": "form-control"}),
+ "score_type": forms.Select(attrs={"class": "form-control"}),
+ "score": forms.TextInput(
+ attrs={"class": "form-control", "placeholder": "xx,xxx"}
),
- 'tof': forms.HiddenInput(),
+ "tof": forms.HiddenInput(),
}
gymnast_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching gymnast…',
- 'data-ref': '#id_gymnast',
+ "class": "form-control",
+ "placeholder": "Searching gymnast…",
+ "data-ref": "#id_gymnast",
}
)
)
class LearnedSkillForm(forms.ModelForm):
-
class Meta:
model = LearnedSkill
- fields = ('gymnast', 'skill', 'cando', 'date')
+ fields = ("gymnast", "skill", "cando", "date")
widgets = {
- 'gymnast': forms.HiddenInput(),
- 'skill': forms.HiddenInput(),
- 'date': forms.TextInput(
+ "gymnast": forms.HiddenInput(),
+ "skill": forms.HiddenInput(),
+ "date": forms.TextInput(
attrs={
- 'class': 'form-control datepicker',
- 'placeholder': date.today().strftime('%Y-%m-%d'),
- 'value': date.today().strftime('%Y-%m-%d'),
+ "class": "form-control datepicker",
+ "placeholder": date.today().strftime("%Y-%m-%d"),
+ "value": date.today().strftime("%Y-%m-%d"),
}
),
- 'cando': forms.Select(attrs={'class': 'form-control'}),
+ "cando": forms.Select(attrs={"class": "form-control"}),
}
gymnast_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching gymnast…',
- 'data-ref': '#id_gymnast',
+ "class": "form-control",
+ "placeholder": "Searching gymnast…",
+ "data-ref": "#id_gymnast",
}
)
)
@@ -70,9 +78,9 @@ class LearnedSkillForm(forms.ModelForm):
skill_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching skill…',
- 'data-ref': '#id_skill',
+ "class": "form-control",
+ "placeholder": "Searching skill…",
+ "data-ref": "#id_skill",
}
)
)
@@ -81,49 +89,61 @@ class LearnedSkillForm(forms.ModelForm):
class ScoreForm(forms.ModelForm):
class Meta:
ROUTINETYPE_CHOICE = (
- (0, 'Routine 1'),
- (1, 'Routine 2'),
- (2, 'Final\'s routine'),
+ (0, "Routine 1"),
+ (1, "Routine 2"),
+ (2, "Final's routine"),
)
model = Point
fields = (
- 'gymnast',
- 'event',
- 'routine_type',
- 'point_difficulty',
- 'point_time_of_flight',
- 'point_execution',
- 'point_horizontal_displacement',
- 'penality',
- 'total',
+ "gymnast",
+ "event",
+ "routine_type",
+ "point_difficulty",
+ "point_time_of_flight",
+ "point_execution",
+ "point_horizontal_displacement",
+ "penality",
+ "total",
)
widgets = {
- 'gymnast': forms.HiddenInput(),
- 'event': forms.HiddenInput(),
- 'routine_type': forms.Select(attrs={'class': 'form-control'}),
- 'point_execution': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'xx,xx',}
- ),
- 'point_difficulty': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'xx,xx',}
- ),
- 'point_time_of_flight': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'xx,xx',}
- ),
- 'point_horizontal_displacement': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'x,xx',}
- ),
- 'penality': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'xx,xx', 'value': '0'}
- ),
- 'total': forms.TextInput(
+ "gymnast": forms.HiddenInput(),
+ "event": forms.HiddenInput(),
+ "routine_type": forms.Select(attrs={"class": "form-control"}),
+ "point_execution": forms.NumberInput(
attrs={
- 'class': 'form-control',
- 'placeholder': '000,000',
- 'readonly': 'readonly',
- 'maxlength': '6',
+ "class": "form-control",
+ "placeholder": "xx,xx",
+ }
+ ),
+ "point_difficulty": forms.NumberInput(
+ attrs={
+ "class": "form-control",
+ "placeholder": "xx,xx",
+ }
+ ),
+ "point_time_of_flight": forms.NumberInput(
+ attrs={
+ "class": "form-control",
+ "placeholder": "xx,xx",
+ }
+ ),
+ "point_horizontal_displacement": forms.NumberInput(
+ attrs={
+ "class": "form-control",
+ "placeholder": "x,xx",
+ }
+ ),
+ "penality": forms.NumberInput(
+ attrs={"class": "form-control", "placeholder": "xx,xx", "value": "0"}
+ ),
+ "total": forms.TextInput(
+ attrs={
+ "class": "form-control",
+ "placeholder": "000,000",
+ "readonly": "readonly",
+ "maxlength": "6",
}
),
}
@@ -131,18 +151,18 @@ class ScoreForm(forms.ModelForm):
gymnast_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching…',
- 'data-ref': '#id_gymnast',
+ "class": "form-control",
+ "placeholder": "Searching…",
+ "data-ref": "#id_gymnast",
}
)
)
event_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching…',
- 'data-ref': '#id_event',
+ "class": "form-control",
+ "placeholder": "Searching…",
+ "data-ref": "#id_event",
}
)
)
@@ -151,24 +171,24 @@ class ScoreForm(forms.ModelForm):
class AccidentForm(forms.ModelForm):
class Meta:
model = Accident
- fields = ('gymnast', 'date', 'nb_week_off', 'informations')
+ fields = ("gymnast", "date", "nb_week_off", "informations")
widgets = {
- 'date': forms.DateInput(
+ "date": forms.DateInput(
attrs={
- 'class': 'form-control datepicker',
- 'placeholder': date.today().strftime('%Y-%m-%d'),
- 'value': date.today().strftime('%Y-%m-%d'),
+ "class": "form-control datepicker",
+ "placeholder": date.today().strftime("%Y-%m-%d"),
+ "value": date.today().strftime("%Y-%m-%d"),
}
),
- 'gymnast': forms.HiddenInput(),
- 'skill': forms.HiddenInput(),
- 'nb_week_off': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'xx'}
+ "gymnast": forms.HiddenInput(),
+ "skill": forms.HiddenInput(),
+ "nb_week_off": forms.NumberInput(
+ attrs={"class": "form-control", "placeholder": "xx"}
),
- 'informations': forms.Textarea(
+ "informations": forms.Textarea(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Informations about accident: context (why, where, …), consequencies, …',
+ "class": "form-control",
+ "placeholder": "Informations about accident: context (why, where, …), consequencies, …",
}
),
}
@@ -176,9 +196,9 @@ class AccidentForm(forms.ModelForm):
gymnast_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching gymnast…',
- 'data-ref': '#id_gymnast',
+ "class": "form-control",
+ "placeholder": "Searching gymnast…",
+ "data-ref": "#id_gymnast",
}
)
)
@@ -186,35 +206,35 @@ class AccidentForm(forms.ModelForm):
required=False,
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching skill…',
- 'data-ref': '#id_skill',
+ "class": "form-control",
+ "placeholder": "Searching skill…",
+ "data-ref": "#id_skill",
}
- )
+ ),
)
class MindStateForm(forms.ModelForm):
class Meta:
model = MindState
- fields = ('gymnast', 'date', 'score', 'informations')
+ fields = ("gymnast", "date", "score", "informations")
widgets = {
- 'gymnast': forms.HiddenInput(),
- 'date': forms.TextInput(
+ "gymnast": forms.HiddenInput(),
+ "date": forms.TextInput(
attrs={
- 'class': 'form-control datepicker',
- 'placeholder': date.today().strftime('%Y-%m-%d'),
- 'value': date.today().strftime('%Y-%m-%d'),
+ "class": "form-control datepicker",
+ "placeholder": date.today().strftime("%Y-%m-%d"),
+ "value": date.today().strftime("%Y-%m-%d"),
}
),
- 'event': forms.HiddenInput(),
- 'score': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'xx'}
+ "event": forms.HiddenInput(),
+ "score": forms.NumberInput(
+ attrs={"class": "form-control", "placeholder": "xx"}
),
- 'informations': forms.Textarea(
+ "informations": forms.Textarea(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Informations about the psychological state of mind : context (why, where, …), possible consequencies, …',
+ "class": "form-control",
+ "placeholder": "Informations about the psychological state of mind : context (why, where, …), possible consequencies, …",
}
),
}
@@ -222,9 +242,9 @@ class MindStateForm(forms.ModelForm):
gymnast_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching gymnast…',
- 'data-ref': '#id_gymnast',
+ "class": "form-control",
+ "placeholder": "Searching gymnast…",
+ "data-ref": "#id_gymnast",
}
)
)
@@ -233,46 +253,54 @@ class MindStateForm(forms.ModelForm):
required=False,
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching event…',
- 'data-ref': '#id_event',
+ "class": "form-control",
+ "placeholder": "Searching event…",
+ "data-ref": "#id_event",
}
- )
+ ),
)
class GymnastHasRoutineForm(forms.ModelForm):
-
class Meta:
model = GymnastHasRoutine
- fields = ('gymnast', 'routine', 'routine_type', 'datebegin', 'dateend')
+ fields = ("gymnast", "routine", "routine_type", "datebegin", "dateend")
widgets = {
- 'gymnast': forms.HiddenInput(),
- 'routine': forms.HiddenInput(),
- 'routine_type': forms.Select(attrs={'class': 'form-control'}),
- 'datebegin': forms.DateInput(attrs={'class': 'form-control datepicker',}),
- 'dateend': forms.DateInput(attrs={'class': 'form-control datepicker',}),
+ "gymnast": forms.HiddenInput(),
+ "routine": forms.HiddenInput(),
+ "routine_type": forms.Select(attrs={"class": "form-control"}),
+ "datebegin": forms.DateInput(
+ attrs={
+ "class": "form-control datepicker",
+ }
+ ),
+ "dateend": forms.DateInput(
+ attrs={
+ "class": "form-control datepicker",
+ }
+ ),
}
gymnast_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching gymnast…',
- 'data-ref': '#id_gymnast',
+ "class": "form-control",
+ "placeholder": "Searching gymnast…",
+ "data-ref": "#id_gymnast",
}
)
)
routine_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching routine…',
- 'data-ref': '#id_routine',
+ "class": "form-control",
+ "placeholder": "Searching routine…",
+ "data-ref": "#id_routine",
}
)
)
+
class HeightWeightForm(forms.ModelForm):
"""
Formulaire d'enregistrement d'un couple taille/poids
@@ -280,30 +308,30 @@ class HeightWeightForm(forms.ModelForm):
class Meta:
model = HeightWeight
- fields = ('gymnast', 'date', 'height', 'weight')
+ fields = ("gymnast", "date", "height", "weight")
widgets = {
- 'gymnast': forms.HiddenInput(),
- 'date': forms.TextInput(
+ "gymnast": forms.HiddenInput(),
+ "date": forms.TextInput(
attrs={
- 'class': 'form-control datepicker',
- 'placeholder': date.today().strftime('%Y-%m-%d'),
- 'value': date.today().strftime('%Y-%m-%d'),
+ "class": "form-control datepicker",
+ "placeholder": date.today().strftime("%Y-%m-%d"),
+ "value": date.today().strftime("%Y-%m-%d"),
}
),
- 'height': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'xxx,x'}
+ "height": forms.NumberInput(
+ attrs={"class": "form-control", "placeholder": "xxx,x"}
),
- 'weight': forms.NumberInput(
- attrs={'class': 'form-control', 'placeholder': 'xxx,x'}
+ "weight": forms.NumberInput(
+ attrs={"class": "form-control", "placeholder": "xxx,x"}
),
}
gymnast_related = forms.CharField(
widget=forms.TextInput(
attrs={
- 'class': 'form-control',
- 'placeholder': 'Searching gymnast…',
- 'data-ref': '#id_gymnast',
+ "class": "form-control",
+ "placeholder": "Searching gymnast…",
+ "data-ref": "#id_gymnast",
}
)
)
diff --git a/ultron/followup/migrations/0001_initial.py b/ultron/followup/migrations/0001_initial.py
index 1c11f6cc1c..fc39e58f47 100644
--- a/ultron/followup/migrations/0001_initial.py
+++ b/ultron/followup/migrations/0001_initial.py
@@ -10,111 +10,360 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
- ('planning', '0001_initial'),
- ('people', '0001_initial'),
- ('objective', '0001_initial'),
+ ("planning", "0001_initial"),
+ ("people", "0001_initial"),
+ ("objective", "0001_initial"),
]
operations = [
migrations.CreateModel(
- name='Point',
+ name="Point",
fields=[
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('routine_type', models.PositiveSmallIntegerField(choices=[(0, 'Routine 1'), (1, 'Routine 2'), (2, 'Final')])),
- ('point_execution', models.DecimalField(decimal_places=3, max_digits=5)),
- ('point_difficulty', models.DecimalField(decimal_places=1, max_digits=3)),
- ('point_time_of_flight', models.DecimalField(decimal_places=3, max_digits=5)),
- ('point_horizontal_displacement', models.DecimalField(decimal_places=3, max_digits=4)),
- ('penality', models.DecimalField(decimal_places=1, max_digits=3)),
- ('total', models.DecimalField(decimal_places=3, max_digits=6)),
- ('created_at', models.DateTimeField(auto_now_add=True)),
- ('updated_at', models.DateTimeField(auto_now=True)),
- ('event', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='planning.event')),
- ('gymnast', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='points', to='people.gymnast')),
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "routine_type",
+ models.PositiveSmallIntegerField(
+ choices=[(0, "Routine 1"), (1, "Routine 2"), (2, "Final")]
+ ),
+ ),
+ (
+ "point_execution",
+ models.DecimalField(decimal_places=3, max_digits=5),
+ ),
+ (
+ "point_difficulty",
+ models.DecimalField(decimal_places=1, max_digits=3),
+ ),
+ (
+ "point_time_of_flight",
+ models.DecimalField(decimal_places=3, max_digits=5),
+ ),
+ (
+ "point_horizontal_displacement",
+ models.DecimalField(decimal_places=3, max_digits=4),
+ ),
+ ("penality", models.DecimalField(decimal_places=1, max_digits=3)),
+ ("total", models.DecimalField(decimal_places=3, max_digits=6)),
+ ("created_at", models.DateTimeField(auto_now_add=True)),
+ ("updated_at", models.DateTimeField(auto_now=True)),
+ (
+ "event",
+ models.ForeignKey(
+ default=None,
+ on_delete=django.db.models.deletion.CASCADE,
+ to="planning.event",
+ ),
+ ),
+ (
+ "gymnast",
+ models.ForeignKey(
+ default=None,
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="points",
+ to="people.gymnast",
+ ),
+ ),
],
),
migrations.CreateModel(
- name='MindState',
+ name="MindState",
fields=[
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('informations', models.TextField(blank=True, help_text='Only MarkDown is authorized', null=True, verbose_name='Comments')),
- ('date', models.DateField(default=datetime.date.today, verbose_name='Date')),
- ('score', models.PositiveSmallIntegerField(verbose_name='Score')),
- ('created_at', models.DateTimeField(auto_now_add=True)),
- ('updated_at', models.DateTimeField(auto_now=True)),
- ('event', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mindstate', to='planning.event')),
- ('gymnast', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='mindstate', to='people.gymnast')),
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "informations",
+ models.TextField(
+ blank=True,
+ help_text="Only MarkDown is authorized",
+ null=True,
+ verbose_name="Comments",
+ ),
+ ),
+ (
+ "date",
+ models.DateField(default=datetime.date.today, verbose_name="Date"),
+ ),
+ ("score", models.PositiveSmallIntegerField(verbose_name="Score")),
+ ("created_at", models.DateTimeField(auto_now_add=True)),
+ ("updated_at", models.DateTimeField(auto_now=True)),
+ (
+ "event",
+ models.ForeignKey(
+ blank=True,
+ default=None,
+ null=True,
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="mindstate",
+ to="planning.event",
+ ),
+ ),
+ (
+ "gymnast",
+ models.ForeignKey(
+ default=None,
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="mindstate",
+ to="people.gymnast",
+ ),
+ ),
],
options={
- 'abstract': False,
+ "abstract": False,
},
),
migrations.CreateModel(
- name='GymnastHasRoutine',
+ name="GymnastHasRoutine",
fields=[
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('routine_type', models.PositiveSmallIntegerField(choices=[(1, 'L1'), (2, 'L2'), (3, 'L3'), (4, 'L4'), (5, 'L1S'), (6, 'L2S'), (7, 'L3S'), (8, 'L4S')], default='1', verbose_name='Type')),
- ('datebegin', models.DateField(default=datetime.date.today, verbose_name='Date begin')),
- ('dateend', models.DateField(blank=True, default=datetime.date.today, null=True, verbose_name='Date end')),
- ('gymnast', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='routines', to='people.gymnast', verbose_name='Gymnast')),
- ('routine', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='done_by', to='objective.routine', verbose_name='Routine')),
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "routine_type",
+ models.PositiveSmallIntegerField(
+ choices=[
+ (1, "L1"),
+ (2, "L2"),
+ (3, "L3"),
+ (4, "L4"),
+ (5, "L1S"),
+ (6, "L2S"),
+ (7, "L3S"),
+ (8, "L4S"),
+ ],
+ default="1",
+ verbose_name="Type",
+ ),
+ ),
+ (
+ "datebegin",
+ models.DateField(
+ default=datetime.date.today, verbose_name="Date begin"
+ ),
+ ),
+ (
+ "dateend",
+ models.DateField(
+ blank=True,
+ default=datetime.date.today,
+ null=True,
+ verbose_name="Date end",
+ ),
+ ),
+ (
+ "gymnast",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="routines",
+ to="people.gymnast",
+ verbose_name="Gymnast",
+ ),
+ ),
+ (
+ "routine",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="done_by",
+ to="objective.routine",
+ verbose_name="Routine",
+ ),
+ ),
],
options={
- 'verbose_name': 'Gymnast Has Routine',
- 'verbose_name_plural': 'Gymnast Has Routines',
+ "verbose_name": "Gymnast Has Routine",
+ "verbose_name_plural": "Gymnast Has Routines",
},
),
migrations.CreateModel(
- name='Chrono',
+ name="Chrono",
fields=[
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('type', models.PositiveSmallIntegerField(choices=[(0, '10 |'), (1, 'L1'), (2, 'L2'), (3, 'L3'), (4, 'L4'), (99, 'Other')], verbose_name='Routine type')),
- ('score_type', models.PositiveSmallIntegerField(choices=[(0, 'Chrono'), (1, 'ToF')], verbose_name='Score type')),
- ('score', models.DecimalField(decimal_places=3, max_digits=5)),
- ('tof', models.DecimalField(blank=True, decimal_places=3, max_digits=5, null=True)),
- ('date', models.DateField(default=datetime.date.today, verbose_name='Date')),
- ('created_at', models.DateTimeField(auto_now_add=True)),
- ('updated_at', models.DateTimeField(auto_now=True)),
- ('gymnast', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='chronos', to='people.gymnast', verbose_name='gymnast')),
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "type",
+ models.PositiveSmallIntegerField(
+ choices=[
+ (0, "10 |"),
+ (1, "L1"),
+ (2, "L2"),
+ (3, "L3"),
+ (4, "L4"),
+ (99, "Other"),
+ ],
+ verbose_name="Routine type",
+ ),
+ ),
+ (
+ "score_type",
+ models.PositiveSmallIntegerField(
+ choices=[(0, "Chrono"), (1, "ToF")], verbose_name="Score type"
+ ),
+ ),
+ ("score", models.DecimalField(decimal_places=3, max_digits=5)),
+ (
+ "tof",
+ models.DecimalField(
+ blank=True, decimal_places=3, max_digits=5, null=True
+ ),
+ ),
+ (
+ "date",
+ models.DateField(default=datetime.date.today, verbose_name="Date"),
+ ),
+ ("created_at", models.DateTimeField(auto_now_add=True)),
+ ("updated_at", models.DateTimeField(auto_now=True)),
+ (
+ "gymnast",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="chronos",
+ to="people.gymnast",
+ verbose_name="gymnast",
+ ),
+ ),
],
options={
- 'verbose_name': 'Chrono',
- 'verbose_name_plural': 'Chronos',
- 'ordering': ['date', 'gymnast'],
+ "verbose_name": "Chrono",
+ "verbose_name_plural": "Chronos",
+ "ordering": ["date", "gymnast"],
},
),
migrations.CreateModel(
- name='Accident',
+ name="Accident",
fields=[
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('informations', models.TextField(blank=True, help_text='Only MarkDown is authorized', null=True, verbose_name='Comments')),
- ('date', models.DateField(verbose_name='Date')),
- ('nb_week_off', models.SmallIntegerField(blank=True, null=True, verbose_name='# week off')),
- ('created_at', models.DateTimeField(auto_now_add=True)),
- ('updated_at', models.DateTimeField(auto_now=True)),
- ('gymnast', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='accident', to='people.gymnast', verbose_name='Gymnast')),
- ('skill', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='accident', to='objective.skill', verbose_name='Skill')),
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "informations",
+ models.TextField(
+ blank=True,
+ help_text="Only MarkDown is authorized",
+ null=True,
+ verbose_name="Comments",
+ ),
+ ),
+ ("date", models.DateField(verbose_name="Date")),
+ (
+ "nb_week_off",
+ models.SmallIntegerField(
+ blank=True, null=True, verbose_name="# week off"
+ ),
+ ),
+ ("created_at", models.DateTimeField(auto_now_add=True)),
+ ("updated_at", models.DateTimeField(auto_now=True)),
+ (
+ "gymnast",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="accident",
+ to="people.gymnast",
+ verbose_name="Gymnast",
+ ),
+ ),
+ (
+ "skill",
+ models.ForeignKey(
+ blank=True,
+ null=True,
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="accident",
+ to="objective.skill",
+ verbose_name="Skill",
+ ),
+ ),
],
options={
- 'verbose_name': 'Accident',
- 'verbose_name_plural': 'Accidents',
+ "verbose_name": "Accident",
+ "verbose_name_plural": "Accidents",
},
),
migrations.CreateModel(
- name='LearnedSkill',
+ name="LearnedSkill",
fields=[
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('cando', models.PositiveSmallIntegerField(choices=[(0, 'No'), (1, 'With help'), (2, 'Without help'), (3, 'Chained')], verbose_name='Can do type')),
- ('date', models.DateField(default=datetime.date.today, verbose_name='Date')),
- ('created_at', models.DateTimeField(auto_now_add=True)),
- ('updated_at', models.DateTimeField(auto_now=True)),
- ('gymnast', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='can_do_skill', to='people.gymnast', verbose_name='gymnast')),
- ('skill', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='done_by_gymnasts', to='objective.skill', verbose_name='Skill')),
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "cando",
+ models.PositiveSmallIntegerField(
+ choices=[
+ (0, "No"),
+ (1, "With help"),
+ (2, "Without help"),
+ (3, "Chained"),
+ ],
+ verbose_name="Can do type",
+ ),
+ ),
+ (
+ "date",
+ models.DateField(default=datetime.date.today, verbose_name="Date"),
+ ),
+ ("created_at", models.DateTimeField(auto_now_add=True)),
+ ("updated_at", models.DateTimeField(auto_now=True)),
+ (
+ "gymnast",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="can_do_skill",
+ to="people.gymnast",
+ verbose_name="gymnast",
+ ),
+ ),
+ (
+ "skill",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="done_by_gymnasts",
+ to="objective.skill",
+ verbose_name="Skill",
+ ),
+ ),
],
options={
- 'verbose_name': 'Learned Skill',
- 'verbose_name_plural': 'Learned Skills',
- 'unique_together': {('gymnast', 'skill', 'date')},
+ "verbose_name": "Learned Skill",
+ "verbose_name_plural": "Learned Skills",
+ "unique_together": {("gymnast", "skill", "date")},
},
),
]
diff --git a/ultron/followup/migrations/0002_alter_learnedskill_gymnast.py b/ultron/followup/migrations/0002_alter_learnedskill_gymnast.py
index db7eaba69d..7737b2cb67 100644
--- a/ultron/followup/migrations/0002_alter_learnedskill_gymnast.py
+++ b/ultron/followup/migrations/0002_alter_learnedskill_gymnast.py
@@ -7,14 +7,19 @@ import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
- ('people', '0001_initial'),
- ('followup', '0001_initial'),
+ ("people", "0001_initial"),
+ ("followup", "0001_initial"),
]
operations = [
migrations.AlterField(
- model_name='learnedskill',
- name='gymnast',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='known_skills', to='people.gymnast', verbose_name='gymnast'),
+ model_name="learnedskill",
+ name="gymnast",
+ field=models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="known_skills",
+ to="people.gymnast",
+ verbose_name="gymnast",
+ ),
),
]
diff --git a/ultron/followup/migrations/0003_alter_learnedskill_skill.py b/ultron/followup/migrations/0003_alter_learnedskill_skill.py
index e5445562fa..a8fc120341 100644
--- a/ultron/followup/migrations/0003_alter_learnedskill_skill.py
+++ b/ultron/followup/migrations/0003_alter_learnedskill_skill.py
@@ -7,14 +7,19 @@ import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
- ('objective', '0001_initial'),
- ('followup', '0002_alter_learnedskill_gymnast'),
+ ("objective", "0001_initial"),
+ ("followup", "0002_alter_learnedskill_gymnast"),
]
operations = [
migrations.AlterField(
- model_name='learnedskill',
- name='skill',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='known_by_gymnasts', to='objective.skill', verbose_name='Skill'),
+ model_name="learnedskill",
+ name="skill",
+ field=models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="known_by_gymnasts",
+ to="objective.skill",
+ verbose_name="Skill",
+ ),
),
]
diff --git a/ultron/followup/migrations/0004_alter_learnedskill_skill.py b/ultron/followup/migrations/0004_alter_learnedskill_skill.py
index 10a8ebe55f..2119613019 100644
--- a/ultron/followup/migrations/0004_alter_learnedskill_skill.py
+++ b/ultron/followup/migrations/0004_alter_learnedskill_skill.py
@@ -7,14 +7,19 @@ import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
- ('objective', '0001_initial'),
- ('followup', '0003_alter_learnedskill_skill'),
+ ("objective", "0001_initial"),
+ ("followup", "0003_alter_learnedskill_skill"),
]
operations = [
migrations.AlterField(
- model_name='learnedskill',
- name='skill',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='known_by', to='objective.skill', verbose_name='Skill'),
+ model_name="learnedskill",
+ name="skill",
+ field=models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="known_by",
+ to="objective.skill",
+ verbose_name="Skill",
+ ),
),
]
diff --git a/ultron/followup/migrations/0005_auto_20211205_1412.py b/ultron/followup/migrations/0005_auto_20211205_1412.py
index 4f1666216d..7b1b02e3ba 100644
--- a/ultron/followup/migrations/0005_auto_20211205_1412.py
+++ b/ultron/followup/migrations/0005_auto_20211205_1412.py
@@ -7,25 +7,49 @@ import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
- ('objective', '0003_delete_gymnasthasroutine'),
- ('people', '0001_initial'),
- ('followup', '0004_alter_learnedskill_skill'),
+ ("objective", "0003_delete_gymnasthasroutine"),
+ ("people", "0001_initial"),
+ ("followup", "0004_alter_learnedskill_skill"),
]
operations = [
migrations.AlterField(
- model_name='gymnasthasroutine',
- name='gymnast',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='has_routine', to='people.gymnast', verbose_name='Gymnast'),
+ model_name="gymnasthasroutine",
+ name="gymnast",
+ field=models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="has_routine",
+ to="people.gymnast",
+ verbose_name="Gymnast",
+ ),
),
migrations.AlterField(
- model_name='gymnasthasroutine',
- name='routine',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='done_by_gymnast', to='objective.routine', verbose_name='Routine'),
+ model_name="gymnasthasroutine",
+ name="routine",
+ field=models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="done_by_gymnast",
+ to="objective.routine",
+ verbose_name="Routine",
+ ),
),
migrations.AlterField(
- model_name='gymnasthasroutine',
- name='routine_type',
- field=models.PositiveSmallIntegerField(choices=[(0, 'Other'), (1, 'L1'), (2, 'L2'), (3, 'L3'), (4, 'L4'), (5, 'L1S'), (6, 'L2S'), (7, 'L3S'), (8, 'L4S')], default='1', verbose_name='Type'),
+ model_name="gymnasthasroutine",
+ name="routine_type",
+ field=models.PositiveSmallIntegerField(
+ choices=[
+ (0, "Other"),
+ (1, "L1"),
+ (2, "L2"),
+ (3, "L3"),
+ (4, "L4"),
+ (5, "L1S"),
+ (6, "L2S"),
+ (7, "L3S"),
+ (8, "L4S"),
+ ],
+ default="1",
+ verbose_name="Type",
+ ),
),
]
diff --git a/ultron/followup/migrations/0006_heightweight_numberofroutinedone.py b/ultron/followup/migrations/0006_heightweight_numberofroutinedone.py
index f9fa03acca..04f05c122b 100644
--- a/ultron/followup/migrations/0006_heightweight_numberofroutinedone.py
+++ b/ultron/followup/migrations/0006_heightweight_numberofroutinedone.py
@@ -8,40 +8,123 @@ import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
- ('people', '0001_initial'),
- ('objective', '0003_delete_gymnasthasroutine'),
- ('followup', '0005_auto_20211205_1412'),
+ ("people", "0001_initial"),
+ ("objective", "0003_delete_gymnasthasroutine"),
+ ("followup", "0005_auto_20211205_1412"),
]
operations = [
migrations.CreateModel(
- name='NumberOfRoutineDone',
+ name="NumberOfRoutineDone",
fields=[
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('routine_type', models.PositiveSmallIntegerField(choices=[(0, 'Other'), (1, 'L1'), (2, 'L2'), (3, 'L3'), (4, 'L4'), (5, 'L1S'), (6, 'L2S'), (7, 'L3S'), (8, 'L4S')], default='1', verbose_name='Type')),
- ('number_of_try', models.PositiveSmallIntegerField(verbose_name='Number of try')),
- ('number_of_successes', models.PositiveSmallIntegerField(verbose_name='number of successes')),
- ('date', models.DateField(default=datetime.date.today, verbose_name='Date')),
- ('gymnast', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='number_of_routine_done', to='people.gymnast', verbose_name='Gymnast')),
- ('routine', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='number_of_try', to='objective.routine', verbose_name='Routine')),
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "routine_type",
+ models.PositiveSmallIntegerField(
+ choices=[
+ (0, "Other"),
+ (1, "L1"),
+ (2, "L2"),
+ (3, "L3"),
+ (4, "L4"),
+ (5, "L1S"),
+ (6, "L2S"),
+ (7, "L3S"),
+ (8, "L4S"),
+ ],
+ default="1",
+ verbose_name="Type",
+ ),
+ ),
+ (
+ "number_of_try",
+ models.PositiveSmallIntegerField(verbose_name="Number of try"),
+ ),
+ (
+ "number_of_successes",
+ models.PositiveSmallIntegerField(
+ verbose_name="number of successes"
+ ),
+ ),
+ (
+ "date",
+ models.DateField(default=datetime.date.today, verbose_name="Date"),
+ ),
+ (
+ "gymnast",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="number_of_routine_done",
+ to="people.gymnast",
+ verbose_name="Gymnast",
+ ),
+ ),
+ (
+ "routine",
+ models.ForeignKey(
+ blank=True,
+ null=True,
+ on_delete=django.db.models.deletion.SET_NULL,
+ related_name="number_of_try",
+ to="objective.routine",
+ verbose_name="Routine",
+ ),
+ ),
],
options={
- 'verbose_name': 'Number of routine done',
- 'verbose_name_plural': 'Number of routines done',
+ "verbose_name": "Number of routine done",
+ "verbose_name_plural": "Number of routines done",
},
),
migrations.CreateModel(
- name='HeightWeight',
+ name="HeightWeight",
fields=[
- ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('height', models.DecimalField(decimal_places=1, max_digits=4, verbose_name='Height')),
- ('weight', models.DecimalField(decimal_places=1, max_digits=4, verbose_name='Weight')),
- ('date', models.DateField(default=datetime.date.today, verbose_name='Date')),
- ('gymnast', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='height_weight', to='people.gymnast', verbose_name='Gymnast')),
+ (
+ "id",
+ models.BigAutoField(
+ auto_created=True,
+ primary_key=True,
+ serialize=False,
+ verbose_name="ID",
+ ),
+ ),
+ (
+ "height",
+ models.DecimalField(
+ decimal_places=1, max_digits=4, verbose_name="Height"
+ ),
+ ),
+ (
+ "weight",
+ models.DecimalField(
+ decimal_places=1, max_digits=4, verbose_name="Weight"
+ ),
+ ),
+ (
+ "date",
+ models.DateField(default=datetime.date.today, verbose_name="Date"),
+ ),
+ (
+ "gymnast",
+ models.ForeignKey(
+ on_delete=django.db.models.deletion.CASCADE,
+ related_name="height_weight",
+ to="people.gymnast",
+ verbose_name="Gymnast",
+ ),
+ ),
],
options={
- 'verbose_name': 'Height & weight',
- 'verbose_name_plural': 'Heights & weights',
+ "verbose_name": "Height & weight",
+ "verbose_name_plural": "Heights & weights",
},
),
]
diff --git a/ultron/followup/migrations/0007_auto_20211213_1445.py b/ultron/followup/migrations/0007_auto_20211213_1445.py
index 053c03c074..4b8dc0486f 100644
--- a/ultron/followup/migrations/0007_auto_20211213_1445.py
+++ b/ultron/followup/migrations/0007_auto_20211213_1445.py
@@ -7,20 +7,35 @@ import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
- ('objective', '0003_delete_gymnasthasroutine'),
- ('planning', '0001_initial'),
- ('followup', '0006_heightweight_numberofroutinedone'),
+ ("objective", "0003_delete_gymnasthasroutine"),
+ ("planning", "0001_initial"),
+ ("followup", "0006_heightweight_numberofroutinedone"),
]
operations = [
migrations.AlterField(
- model_name='accident',
- name='skill',
- field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='accident', to='objective.skill', verbose_name='Skill'),
+ model_name="accident",
+ name="skill",
+ field=models.ForeignKey(
+ blank=True,
+ default=None,
+ null=True,
+ on_delete=django.db.models.deletion.SET_NULL,
+ related_name="accident",
+ to="objective.skill",
+ verbose_name="Skill",
+ ),
),
migrations.AlterField(
- model_name='mindstate',
- name='event',
- field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mindstate', to='planning.event'),
+ model_name="mindstate",
+ name="event",
+ field=models.ForeignKey(
+ blank=True,
+ default=None,
+ null=True,
+ on_delete=django.db.models.deletion.SET_NULL,
+ related_name="mindstate",
+ to="planning.event",
+ ),
),
]
diff --git a/ultron/followup/migrations/0008_alter_learnedskill_unique_together.py b/ultron/followup/migrations/0008_alter_learnedskill_unique_together.py
index 11ee29ec57..40ae5c6130 100644
--- a/ultron/followup/migrations/0008_alter_learnedskill_unique_together.py
+++ b/ultron/followup/migrations/0008_alter_learnedskill_unique_together.py
@@ -6,14 +6,14 @@ from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
- ('people', '0001_initial'),
- ('objective', '0003_delete_gymnasthasroutine'),
- ('followup', '0007_auto_20211213_1445'),
+ ("people", "0001_initial"),
+ ("objective", "0003_delete_gymnasthasroutine"),
+ ("followup", "0007_auto_20211213_1445"),
]
operations = [
migrations.AlterUniqueTogether(
- name='learnedskill',
- unique_together={('gymnast', 'skill', 'date', 'cando')},
+ name="learnedskill",
+ unique_together={("gymnast", "skill", "date", "cando")},
),
]
diff --git a/ultron/followup/models.py b/ultron/followup/models.py
index 64c4355b26..18102cc0b0 100644
--- a/ultron/followup/models.py
+++ b/ultron/followup/models.py
@@ -19,6 +19,7 @@ ROUTINE_CHOICE = (
(8, "L4S"),
)
+
class Chrono(models.Model):
"""
Représente les chronos (de chandelles ou de série) enregistrés pour un(e) gymnaste.
@@ -71,14 +72,13 @@ class Accident(Markdownizable):
"""
La classe `Accident` permet d'indiquer qu'un gymnaste a eu un accident, en liaison avec un
skill ou non.
- """
+ """
class Meta:
verbose_name = "Accident"
verbose_name_plural = "Accidents"
# unique_together = ("gymnast", "skill", "date")
-
gymnast = models.ForeignKey(
Gymnast,
verbose_name="Gymnast",
@@ -92,10 +92,12 @@ class Accident(Markdownizable):
on_delete=models.SET_NULL,
default=None,
blank=True,
- null=True
+ null=True,
)
date = models.DateField(verbose_name="Date")
- nb_week_off = models.SmallIntegerField(blank=True, null=True, verbose_name="# week off")
+ nb_week_off = models.SmallIntegerField(
+ blank=True, null=True, verbose_name="# week off"
+ )
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
@@ -114,21 +116,20 @@ class LearnedSkill(models.Model):
TYPE_CHOICES = ((0, "No"), (1, "With help"), (2, "Without help"), (3, "Chained"))
class Meta:
- verbose_name = 'Learned Skill'
- verbose_name_plural = 'Learned Skills'
- unique_together = ('gymnast', 'skill', 'date', 'cando')
-
+ verbose_name = "Learned Skill"
+ verbose_name_plural = "Learned Skills"
+ unique_together = ("gymnast", "skill", "date", "cando")
gymnast = models.ForeignKey(
Gymnast,
- verbose_name='gymnast',
- related_name='known_skills',
+ verbose_name="gymnast",
+ related_name="known_skills",
on_delete=models.CASCADE,
)
skill = models.ForeignKey(
Skill,
- verbose_name='Skill',
- related_name='known_by',
+ verbose_name="Skill",
+ related_name="known_by",
on_delete=models.CASCADE,
)
cando = models.PositiveSmallIntegerField(
@@ -146,11 +147,13 @@ class Point(models.Model):
ROUTINETYPE_CHOICE = ((0, "Routine 1"), (1, "Routine 2"), (2, "Final"))
- gymnast = models.ForeignKey(Gymnast, on_delete=models.CASCADE, default=None, related_name="points")
+ gymnast = models.ForeignKey(
+ Gymnast, on_delete=models.CASCADE, default=None, related_name="points"
+ )
event = models.ForeignKey(Event, on_delete=models.CASCADE, default=None)
routine_type = models.PositiveSmallIntegerField(choices=ROUTINETYPE_CHOICE)
point_execution = models.DecimalField(max_digits=5, decimal_places=3)
- point_difficulty = (models.DecimalField(max_digits=3, decimal_places=1))
+ point_difficulty = models.DecimalField(max_digits=3, decimal_places=1)
point_time_of_flight = models.DecimalField(max_digits=5, decimal_places=3)
point_horizontal_displacement = models.DecimalField(max_digits=4, decimal_places=3)
penality = models.DecimalField(max_digits=3, decimal_places=1)
@@ -170,21 +173,30 @@ class MindState(Markdownizable):
Représente l'état d'esprit psychologique d'un gymnaste
"""
- gymnast = models.ForeignKey(Gymnast, on_delete=models.CASCADE, default=None, related_name="mindstate")
+ gymnast = models.ForeignKey(
+ Gymnast, on_delete=models.CASCADE, default=None, related_name="mindstate"
+ )
date = models.DateField(default=date.today, verbose_name="Date")
- event = models.ForeignKey(Event, on_delete=models.SET_NULL, default=None, blank=True, null=True, related_name="mindstate")
+ event = models.ForeignKey(
+ Event,
+ on_delete=models.SET_NULL,
+ default=None,
+ blank=True,
+ null=True,
+ related_name="mindstate",
+ )
score = models.PositiveSmallIntegerField(verbose_name="Score")
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
- return '%s - %s : %s' % (self.gymnast, self.date, self.score)
+ return "%s - %s : %s" % (self.gymnast, self.date, self.score)
class GymnastHasRoutine(models.Model):
"""
- Classe représentant le lien entre les gymnastes et leurs séries.
- """
+ Classe représentant le lien entre les gymnastes et leurs séries.
+ """
class Meta:
verbose_name = "Gymnast Has Routine"
@@ -241,11 +253,19 @@ class NumberOfRoutineDone(models.Model):
choices=ROUTINE_CHOICE, verbose_name="Type", default="1"
)
number_of_try = models.PositiveSmallIntegerField(verbose_name="Number of try")
- number_of_successes = models.PositiveSmallIntegerField(verbose_name="number of successes")
+ number_of_successes = models.PositiveSmallIntegerField(
+ verbose_name="number of successes"
+ )
date = models.DateField(default=date.today, verbose_name="Date")
def __str__(self):
- return "%s - %s (%s) : %s | %s" % (self.gymnast, self.routine_type, self.routine, self.number_of_try, self.number_of_successes)
+ return "%s - %s (%s) : %s | %s" % (
+ self.gymnast,
+ self.routine_type,
+ self.routine,
+ self.number_of_try,
+ self.number_of_successes,
+ )
class HeightWeight(models.Model):
diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py
index fffa95abc2..6198bbc817 100644
--- a/ultron/followup/urls.py
+++ b/ultron/followup/urls.py
@@ -6,16 +6,24 @@ from . import views
# Chronos
chrono_urlpatterns = [
- path(r"", views.chrono_listing, name='chrono_list'),
- path(r"create/", views.chrono_create_or_update, name='chrono_create'),
- path(r"create/