diff --git a/src/objective/views.py b/src/objective/views.py index 567b671..ce14696 100644 --- a/src/objective/views.py +++ b/src/objective/views.py @@ -20,6 +20,7 @@ from people.models import Gymnast, CanDoRelation from datetime import datetime import random +import math def __lookup(lookup_class, lookup_value): """ @@ -362,7 +363,7 @@ def suggest_routine(request, difficulty_score, routine_length, max_difficulty_sc current_routine = [] if last_jump: - skill_list = Skill.objects.filter(departure = last_jump.landing) + skill_list = Skill.objects.filter(departure = last_jump.landing, difficulty__lte = difficulty_score) if logic and last_jump.landing == "Debout": skill_list = skill_list.exclude(rotationType = last_jump.rotationType) else: @@ -372,11 +373,19 @@ def suggest_routine(request, difficulty_score, routine_length, max_difficulty_sc skill_list = skill_list.filter(is_competitive = True) if logic and max_difficulty_score: - min_difficulty_score = difficulty_score / 10 - min_difficulty_score -= (min_difficulty_score / 3) - max_difficulty_score = difficulty_score / 10 - max_difficulty_score += (max_difficulty_score / 2) - # logique à terminer d'implémenter... + min_difficulty_score = math.ceil(max(0, ((difficulty_score / 10) - 5))) + + if difficulty_score <= 6: + max_difficulty_score = math.ceil(difficulty_score / 5) + 1 + elif difficulty_score <= 12: + max_difficulty_score = math.ceil(difficulty_score / 10) + 7 + else: + max_difficulty_score = math.ceil(difficulty_score / 15) + 11 + + skill_list = skill_list.filter( + difficulty__gte = min_difficulty_score, + difficulty__lte = max_difficulty_score + ) for skill in skill_list: current_routine.append(skill)