-
Notation : {{ skill.notation }}
- Age girl : {{ skill.age_girl }}
- Age boy : {{ skill.age_boy }}
-
+
-
+
+
diff --git a/templates/objectives/skills/list.html b/templates/objectives/skills/list.html
index d2cf968031..1e2b4124fd 100644
--- a/templates/objectives/skills/list.html
+++ b/templates/objectives/skills/list.html
@@ -26,8 +26,8 @@
{{ skill.long_label }} |
{{ skill.short_label }} |
- {{ skill.age_girl }} |
- {{ skill.age_boy }} |
+ {{ skill.age_girl_without_help }} |
+ {{ skill.age_boy_without_help }} |
{{ skill.notation }} |
{{ skill.difficulty }} |
{{ skill.level }} |
diff --git a/ultron/objective/admin.py b/ultron/objective/admin.py
index a5b85af147..48f3493a96 100644
--- a/ultron/objective/admin.py
+++ b/ultron/objective/admin.py
@@ -39,8 +39,14 @@ class SkillAdmin(ForeignKeyAutocompleteAdmin):
"notation",
"simplified_notation",
"is_competitive",
- "age_boy",
- "age_girl",
+ "age_boy_with_help",
+ "age_boy_without_help",
+ "age_boy_chained",
+ "age_boy_masterised",
+ "age_girl_with_help",
+ "age_girl_without_help",
+ "age_girl_chained",
+ "age_girl_masterised",
"prerequisites",
"educatives",
)
@@ -52,8 +58,6 @@ class SkillAdmin(ForeignKeyAutocompleteAdmin):
"level",
"rank",
"notation",
- "age_boy",
- "age_girl",
)
ordering = ("long_label", "short_label")
@@ -67,8 +71,6 @@ class SkillAdmin(ForeignKeyAutocompleteAdmin):
"rotation",
"level",
"difficulty",
- "age_boy",
- "age_girl",
)
filter_horizontal = ("educatives", "prerequisites")
diff --git a/ultron/objective/models.py b/ultron/objective/models.py
index cfe6e08b11..5e91bd560a 100644
--- a/ultron/objective/models.py
+++ b/ultron/objective/models.py
@@ -11,6 +11,21 @@ class Educative(Markdownizable):
Classe `mère`.
"""
+ AGE_CHOICES = (
+ (6, "6-7"),
+ (7, "7-8"),
+ (8, "8-9"),
+ (9, "9-10"),
+ (10, "10-11"),
+ (11, "11-12"),
+ (12, "12-13"),
+ (13, "13-14"),
+ (14, "14-15"),
+ (15, "15-16"),
+ (16, "16-17"),
+ (17, "17+"),
+ )
+
class Meta:
verbose_name = "Educatif"
verbose_name_plural = "Educatifs"
@@ -29,11 +44,31 @@ class Educative(Markdownizable):
prerequisites = models.ManyToManyField(
"self", related_name="prerequisite_of", blank=True, symmetrical=False
)
- age_boy = models.PositiveSmallIntegerField(
- blank=True, null=True, verbose_name="Boy's age"
+
+ age_boy_with_help = models.PositiveSmallIntegerField(
+ choices=AGE_CHOICES, verbose_name="Boy's age with help", default=6
)
- age_girl = models.PositiveSmallIntegerField(
- blank=True, null=True, verbose_name="Girl's age"
+ age_boy_without_help = models.PositiveSmallIntegerField(
+ choices=AGE_CHOICES, verbose_name="Boy's age without help", default=6
+ )
+ age_boy_chained = models.PositiveSmallIntegerField(
+ choices=AGE_CHOICES, verbose_name="Boy's age chained", default=6
+ )
+ age_boy_masterised = models.PositiveSmallIntegerField(
+ choices=AGE_CHOICES, verbose_name="Boy's age masterised", default=6
+ )
+
+ age_girl_with_help = models.PositiveSmallIntegerField(
+ choices=AGE_CHOICES, verbose_name="Girl's age with help", default=6
+ )
+ age_girl_without_help = models.PositiveSmallIntegerField(
+ choices=AGE_CHOICES, verbose_name="Girl's age without help", default=6
+ )
+ age_girl_chained = models.PositiveSmallIntegerField(
+ choices=AGE_CHOICES, verbose_name="Girl's age chained", default=6
+ )
+ age_girl_masterised = models.PositiveSmallIntegerField(
+ choices=AGE_CHOICES, verbose_name="Girl's age masterised", default=6
)
def __str__(self):
diff --git a/ultron/objective/views.py b/ultron/objective/views.py
index 40622067fb..4a08f180f4 100644
--- a/ultron/objective/views.py
+++ b/ultron/objective/views.py
@@ -80,17 +80,33 @@ def skill_details(request, skillid):
skill = get_object_or_404(Skill, pk=skillid)
for prerequisite in skill.prerequisites.all():
- if prerequisite.level >= skill.level:
- skill.level = prerequisite.level + 1
+ skill.level = max(prerequisite.level + 1, skill.level)
+ # if prerequisite.level >= skill.level:
+ # skill.level = prerequisite.level + 1
- if prerequisite.rank >= skill.rank:
- skill.rank = prerequisite.rank + 1
+ skill.rank = max(prerequisite.rank + 1, skill.rank)
+ # if prerequisite.rank >= skill.rank:
+ # skill.rank = prerequisite.rank + 1
- if prerequisite.age_boy > skill.age_boy:
- skill.age_boy = prerequisite.age_boy
+ skill.age_boy_with_help = max(skill.age_boy_with_help, prerequisite.age_boy_with_help)
+ skill.age_boy_without_help = max(
+ skill.age_boy_without_help,
+ prerequisite.age_boy_without_help
+ )
+ skill.age_boy_chained = max(skill.age_boy_chained, prerequisite.age_boy_chained)
+ skill.age_boy_masterised = max(skill.age_boy_masterised, prerequisite.age_boy_masterised)
+ # if prerequisite.age_boy > skill.age_boy:
+ # skill.age_boy = prerequisite.age_boy
- if prerequisite.age_girl > skill.age_girl:
- skill.age_girl = prerequisite.age_girl
+ skill.age_girl_with_help = max(skill.age_girl_with_help, prerequisite.age_girl_with_help)
+ skill.age_girl_without_help = max(
+ skill.age_girl_without_help,
+ prerequisite.age_girl_without_help
+ )
+ skill.age_girl_chained = max(skill.age_girl_chained, prerequisite.age_girl_chained)
+ skill.age_girl_masterised = max(skill.age_girl_masterised, prerequisite.age_girl_masterised)
+ # if prerequisite.age_girl > skill.age_girl:
+ # skill.age_girl = prerequisite.age_girl
skill.save()
@@ -158,20 +174,16 @@ def routine_details(request, routineid):
rank = 0
level = 0
- difficulty = 0
age_boy = 0
age_girl = 0
+ difficulty = 0
is_competitive = True
for skill_link in routine.skill_links.all():
difficulty += skill_link.skill.difficulty
-
- if skill_link.skill.level > level:
- level = skill_link.skill.level
-
- if skill_link.skill.rank > rank:
- rank = skill_link.skill.rank + 1
+ level = max(skill_link.skill.level, level)
+ rank = max(skill_link.skill.rank + 1, rank)
if not skill_link.skill.is_competitive:
is_competitive = False
@@ -189,12 +201,8 @@ def routine_details(request, routineid):
is_competitive = False
routine.difficulty = difficulty
-
- if routine.level < level:
- routine.level = level
-
- if routine.rank is None or routine.rank < rank:
- routine.rank = rank
+ routine.level = max(routine.level, level)
+ routine.rank = max(routine.rank, rank)
if routine.age_boy is None or routine.age_boy < age_boy:
routine.age_boy = age_boy
diff --git a/ultron/planning/admin.py b/ultron/planning/admin.py
index 6990f2efca..036329ea68 100644
--- a/ultron/planning/admin.py
+++ b/ultron/planning/admin.py
@@ -4,7 +4,7 @@ from django_extensions.admin import ForeignKeyAutocompleteAdmin
from .models import (
EventType,
Event,
- Event_Participation,
+ EventParticipation,
)
@@ -46,7 +46,7 @@ class EventAdmin(ForeignKeyAutocompleteAdmin):
class EventParticipationAdmin(admin.ModelAdmin):
- model = Event_Participation
+ model = EventParticipation
fields = ("event", "gymnast", "rank")
list_display = ("event", "gymnast", "rank")
@@ -54,4 +54,4 @@ class EventParticipationAdmin(admin.ModelAdmin):
admin.site.register(EventType, EventTypeAdmin)
admin.site.register(Event, EventAdmin)
-admin.site.register(Event_Participation, EventParticipationAdmin)
+admin.site.register(EventParticipation, EventParticipationAdmin)
diff --git a/ultron/planning/models.py b/ultron/planning/models.py
index 13d2034eaf..28f8b844e1 100644
--- a/ultron/planning/models.py
+++ b/ultron/planning/models.py
@@ -59,7 +59,7 @@ class Event(Markdownizable, Temporizable):
name = models.CharField(max_length=255, verbose_name="Nom")
gymnasts = models.ManyToManyField(
Gymnast,
- through="Event_Participation",
+ through="EventParticipation",
related_name="participate_to",
verbose_name="Participants",
)
@@ -85,7 +85,7 @@ class Event(Markdownizable, Temporizable):
return get_number_of_weeks_between(today, self.datebegin.date())
-class Event_Participation(models.Model):
+class EventParticipation(models.Model):
""" """
class Meta:
diff --git a/ultron/planning/views.py b/ultron/planning/views.py
index d7a2eed93e..5da0380e3d 100644
--- a/ultron/planning/views.py
+++ b/ultron/planning/views.py
@@ -7,7 +7,7 @@ from ultron.people.models import Gymnast
from .models import (
Event,
- Event_Participation,
+ EventParticipation,
)
from .forms import EventForm
@@ -79,7 +79,7 @@ def link_gymnast_to_event(request, eventid, gymnastid):
try:
gymnast = get_object_or_404(Gymnast, pk=gymnastid)
event = get_object_or_404(Event, pk=eventid)
- Event_Participation.objects.create(gymnast=gymnast, event=event)
+ EventParticipation.objects.create(gymnast=gymnast, event=event)
except:
return HttpResponse(409)
@@ -100,7 +100,7 @@ def remove_link_between_gymnast_and_event(request, eventid, gymnastid):
try:
gymnast = get_object_or_404(Gymnast, pk=gymnastid)
event = get_object_or_404(Event, pk=eventid)
- link = Event_Participation.objects.get(event=event, gymnast=gymnast)
+ link = EventParticipation.objects.get(event=event, gymnast=gymnast)
link.delete()
except:
return HttpResponse(409)