diff --git a/templates/objectives/skills/details.html b/templates/objectives/skills/details.html index 5858711df9..1e3722700d 100644 --- a/templates/objectives/skills/details.html +++ b/templates/objectives/skills/details.html @@ -6,21 +6,56 @@

{{ skill.short_label }}

{{ skill.notation }}

-
+
-

Détails

+
-
-

Notation : {{ skill.notation }}
- Age girl : {{ skill.age_girl }}
- Age boy : {{ skill.age_boy }} -

+
+

Notation : {{ skill.notation }}

-
-

Difficulty : {{ skill.difficulty }}
- Level : {{ skill.level }}
- Rank : {{ skill.level }}

+
+

Difficulty : {{ skill.difficulty }}

+
+
+

Level : {{ skill.level }}

+
+
+

Rank : {{ skill.level }}

+ + +
+
+
+
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)