@@ -19,34 +19,48 @@
+ {% if content %}
+ {% endif %}
- {% if passe.regexp and passe.regexp != passe.label %}
+ {% if traininground.regexp and traininground.regexp != traininground.label %}
{% endif %}
@@ -54,22 +68,22 @@
- {% if information %}
+ {% if traininground.information %}
{% endif %}
diff --git a/jarvis/objective/templates/passes/list.html b/jarvis/objective/templates/trainingrounds/list.html
similarity index 100%
rename from jarvis/objective/templates/passes/list.html
rename to jarvis/objective/templates/trainingrounds/list.html
diff --git a/jarvis/objective/tests_models.py b/jarvis/objective/tests_models.py
index 2293333..f6e2c48 100644
--- a/jarvis/objective/tests_models.py
+++ b/jarvis/objective/tests_models.py
@@ -5,7 +5,7 @@ from jarvis.objective.models import (
TouchPosition,
Routine,
RoutineSkill,
- Passe,
+ TrainingRound,
)
from jarvis.core.global_vars import ROUTINE_TYPE_CHOICE
@@ -106,7 +106,7 @@ class ToolsModels(TestCase):
)
-class PasseTestCase(TestCase):
+class TrainingRoundTestCase(TestCase):
def setUp(self):
"""
Structure finale :
@@ -126,134 +126,134 @@ class PasseTestCase(TestCase):
def test_is_valid_dot(self):
arg = ""
- self.assertEqual(Passe.is_valid_dot(arg), True)
+ self.assertEqual(TrainingRound.is_valid_dot(arg), True)
arg = "Q1R1"
- self.assertEqual(Passe.is_valid_dot(arg), True)
+ self.assertEqual(TrainingRound.is_valid_dot(arg), True)
arg = ".Q1R1"
- self.assertEqual(Passe.is_valid_dot(arg), True)
+ self.assertEqual(TrainingRound.is_valid_dot(arg), True)
arg = "Q1R1."
- self.assertEqual(Passe.is_valid_dot(arg), True)
+ self.assertEqual(TrainingRound.is_valid_dot(arg), True)
arg = "Q1.R1"
- self.assertEqual(Passe.is_valid_dot(arg), False)
+ self.assertEqual(TrainingRound.is_valid_dot(arg), False)
arg = ".Q1.R1."
- self.assertEqual(Passe.is_valid_dot(arg), False)
+ self.assertEqual(TrainingRound.is_valid_dot(arg), False)
def test_is_valid_subset(self):
subset = ""
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[2-8]"
- self.assertEqual(Passe.is_valid_subset(subset), True)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), True)
subset = "[2--8]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[-5]"
- self.assertEqual(Passe.is_valid_subset(subset), True)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), True)
subset = "[3-]"
- self.assertEqual(Passe.is_valid_subset(subset), True)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), True)
subset = "[8-2]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[-]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[1-]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[-1]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[4]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[6-6]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "4"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[6-6"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[66]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "4-8"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "6-]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[4-"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "[6"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "Q1R1 [4-8]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
subset = "Q1R1 [-8]"
- self.assertEqual(Passe.is_valid_subset(subset), False)
+ self.assertEqual(TrainingRound.is_valid_subset(subset), False)
def test_is_valid_routine_type(self):
for item in ROUTINE_TYPE_CHOICE:
- self.assertEqual(Passe.is_valid_routine_type(item[1]), True)
+ self.assertEqual(TrainingRound.is_valid_routine_type(item[1]), True)
routine_type = ""
- self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
+ self.assertEqual(TrainingRound.is_valid_routine_type(routine_type), False)
routine_type = ".Q1R1"
- self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
+ self.assertEqual(TrainingRound.is_valid_routine_type(routine_type), False)
routine_type = "SFS."
- self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
+ self.assertEqual(TrainingRound.is_valid_routine_type(routine_type), False)
routine_type = "Q1R1 [4-8]"
- self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
+ self.assertEqual(TrainingRound.is_valid_routine_type(routine_type), False)
routine_type = "SFS [-8]"
- self.assertEqual(Passe.is_valid_routine_type(routine_type), False)
+ self.assertEqual(TrainingRound.is_valid_routine_type(routine_type), False)
def test_is_valid_regexp_one_arg(self):
arg = ""
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), False)
arg = "WC"
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), True)
arg = "1|"
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), True)
arg = ".Q1R1"
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), True)
arg = "Q1R2."
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), True)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), True)
arg = ".Q1R1 [4-8"
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), False)
arg = "Q1R2. [4-8"
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), False)
arg = "Q1R1 [4-8]"
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), False)
arg = "Q1R1 [8-4]"
- self.assertEqual(Passe.is_valid_regexp_one_arg(arg), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_one_arg(arg), False)
def test_is_valid_regexp_two_args(self):
arg1 = ""
arg2 = ""
- self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_two_args(arg1, arg2), False)
arg1 = "Q1R1"
- self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_two_args(arg1, arg2), False)
arg2 = "[4-8]"
- self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
+ self.assertEqual(TrainingRound.is_valid_regexp_two_args(arg1, arg2), True)
arg2 = "[8-8]"
- self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_two_args(arg1, arg2), False)
arg2 = "[8-4]"
- self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), False)
+ self.assertEqual(TrainingRound.is_valid_regexp_two_args(arg1, arg2), False)
arg2 = "[-8]"
- self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
+ self.assertEqual(TrainingRound.is_valid_regexp_two_args(arg1, arg2), True)
arg2 = "[4-]"
- self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
+ self.assertEqual(TrainingRound.is_valid_regexp_two_args(arg1, arg2), True)
arg1 = "Q1R1."
- self.assertEqual(Passe.is_valid_regexp_two_args(arg1, arg2), True)
+ self.assertEqual(TrainingRound.is_valid_regexp_two_args(arg1, arg2), True)
def test_is_valid_regexp(self):
regexp = ""
- self.assertEqual(Passe.is_valid_regexp(regexp), False)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), False)
regexp = "Q1R1 [4-8]"
- self.assertEqual(Passe.is_valid_regexp(regexp), True)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), True)
regexp = "Q1R1 [8-8]"
- self.assertEqual(Passe.is_valid_regexp(regexp), False)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), False)
regexp = "Q1R1 [8-4]"
- self.assertEqual(Passe.is_valid_regexp(regexp), False)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), False)
regexp = "Q1R1 [-8]"
- self.assertEqual(Passe.is_valid_regexp(regexp), True)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), True)
regexp = "Q1R1 [4-]"
- self.assertEqual(Passe.is_valid_regexp(regexp), True)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), True)
regexp = "Q1R1. [4-8]"
- self.assertEqual(Passe.is_valid_regexp(regexp), True)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), True)
regexp = "Q1R1. [4-]"
- self.assertEqual(Passe.is_valid_regexp(regexp), True)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), True)
regexp = ".Q1R1 [-8]"
- self.assertEqual(Passe.is_valid_regexp(regexp), True)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), True)
regexp = "Q1R1. [8-8]"
- self.assertEqual(Passe.is_valid_regexp(regexp), False)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), False)
regexp = ".Q1R1 [8-4]"
- self.assertEqual(Passe.is_valid_regexp(regexp), False)
+ self.assertEqual(TrainingRound.is_valid_regexp(regexp), False)
diff --git a/jarvis/objective/urls.py b/jarvis/objective/urls.py
index 93492a3..25bb5e1 100644
--- a/jarvis/objective/urls.py
+++ b/jarvis/objective/urls.py
@@ -90,35 +90,35 @@ urlpatterns = [
),
path(r"combination/", views.combination_listing, name="combination_listing"),
#
- # PASSES
+ # TRAININGROUND
#
- # path(
- # r"passe/
/gymnast//date//",
- # views.passe_details,
- # name="passe_details",
- # ),
- # path(r"passe/", views.passe_listing, name="passe_listing"),
- # path(
- # r"passe/add/",
- # views.passe_create_or_update,
- # name="passe_create",
- # ),
- # path(
- # r"passe/edit//",
- # views.passe_create_or_update,
- # name="passe_update",
- # ),
+ path(
+ r"traininground//",
+ views.traininground_details,
+ name="traininground_details",
+ ),
+ path(r"traininground/", views.traininground_listing, name="traininground_listing"),
+ path(
+ r"traininground/add/",
+ views.traininground_create_or_update,
+ name="traininground_create",
+ ),
+ path(
+ r"traininground/edit//",
+ views.traininground_create_or_update,
+ name="traininground_update",
+ ),
#
- # TRAININGPROGRAM
+ # GYMNASTTRAINING
#
- # path(
- # r"trainingprogram/detail/date//gymnast//",
- # views.trainingprogram_details,
- # name="trainingprogram_details",
- # ),
- # path(
- # r"trainingprogram/switch_trainingprogram_line/",
- # views.switch_trainingprogram_line,
- # name="switch_trainingprogram_line",
- # ),
+ path(
+ r"gymnasttraining/detail//",
+ views.gymnast_training_details,
+ name="gymnast_training_details",
+ ),
+ path(
+ r"gymnasttraining/switch_traininground/",
+ views.switch_traininground,
+ name="switch_traininground",
+ ),
]
diff --git a/jarvis/objective/views.py b/jarvis/objective/views.py
index 7e91f5b..57e1d48 100644
--- a/jarvis/objective/views.py
+++ b/jarvis/objective/views.py
@@ -5,25 +5,24 @@ from django.shortcuts import render, get_object_or_404
from django.views.decorators.http import require_http_methods
from django.urls import reverse
-import pendulum
-
from jarvis.core.global_vars import ROUTINE_TYPE_CHOICE
from jarvis.people.models import Gymnast
from jarvis.followup.models import GymnastHasRoutine
from .forms import (
SkillForm,
- # PasseForm,
+ TrainingRoundForm,
CombinationForm,
CombinationSkillForm,
)
from .models import (
Skill,
- # Passe,
+ TrainingRound,
Routine,
Educative,
RoutineSkill,
- # TrainingProgram,
+ GymnastTraining,
+ GymnastTrainingRound,
PrerequisiteClosure,
)
@@ -512,189 +511,155 @@ def unlink_skill_from_combination(request):
return HttpResponse(200)
-# @login_required
-# @require_http_methods(["GET"])
-# def passe_listing(request):
-# """Liste des passages."""
-# passe_listing = Passe.objects.all()
-# context = {"passe_listing": passe_listing}
-# return render(request, "passes/list.html", context)
+@login_required
+@require_http_methods(["GET"])
+def traininground_listing(request):
+ """Liste des passages."""
+ passe_listing = TrainingRound.objects.all()
+ context = {"passe_listing": passe_listing}
+ return render(request, "trainingrounds/list.html", context)
-# @login_required
-# @require_http_methods(["GET"])
-# def passe_details(request, passe_id, gymnast_id, date):
-# """Détails d'un passage."""
+@login_required
+@require_http_methods(["GET"])
+def traininground_details(request, traininground_id, date=None):
+ """Détails d'un passage."""
-# is_skill = False
-# passe = get_object_or_404(Passe, pk=passe_id)
-# educative_list = passe.educatives.all()
-# # TODO: décryptage de la regexp
-# regexp = passe.regexp
-# routine = None
-# skill_link_list = None
+ is_skill = False
+ traininground = get_object_or_404(TrainingRound, pk=traininground_id)
+ educative_list = traininground.educatives.all()
-# if regexp is not None:
-# operation_list = regexp.split(" ")
-# routine_type = None
+ routine = None
+ skill_link_list = None
-# for item in ROUTINE_TYPE_CHOICE:
-# if item[1] == operation_list[0]:
-# routine_type = item[0]
-# break
+ traininground.update_traininground()
-# if routine_type is not None:
-# # Récupération de la série
-# ghr = GymnastHasRoutine.objects.filter(
-# gymnast=gymnast_id,
-# date_begin__lte=date,
-# # date_end__gte=date,
-# routine_type=routine_type,
-# )
+ # Decryptage de la regexp
+ if traininground.regexp is not None and traininground.regexp != "":
+ arguments = traininground.regexp.split(" ")
+ if TrainingRound.is_valid_routine_type(arguments[0]) and date is not None:
+ # get routine_type
+ routine_type = 0
+ ghr = GymnastHasRoutine.objects.filter(
+ gymnast=traininground.gymnast,
+ date_begin__lte=date,
+ routine_type=routine_type,
+ ).first()
-# print(ghr.query)
+ routine = ghr.routine
+ skill_link_list = routine.skill_links.all()
+ if len(arguments) == 2:
+ content = arguments[1].replace("[", "").replace("]", "")
+ ranks = content.split("-")
-# if ghr.count() > 1:
-# print("Plus d'une série trouvée...")
+ if ranks[0] != "":
+ skill_link_list = skill_link_list.filter(rank__gte=ranks[0])
-# print(ghr)
+ if ranks[1] != "":
+ skill_link_list = skill_link_list.filter(rank__lte=ranks[1])
-# routine = ghr.first().routine
-# skill_link_list = routine.skill_links.all()
-# if len(operation_list) == 2:
-# content = operation_list[1].replace("[", "").replace("]", "")
-# ranks = content.split("-")
+ content = False
+ if skill_link_list or routine or educative_list:
+ content = True
-# if ranks[0] != "":
-# skill_link_list = skill_link_list.filter(rank__gte=ranks[0])
-
-# if ranks[1] != "":
-# skill_link_list = skill_link_list.filter(rank__lte=ranks[1])
-
-# number_of_educative = skill_link_list.count()
-# print(number_of_educative)
-
-# else:
-# number_of_educative = educative_list.count()
-
-# context = {
-# "passe": passe,
-# "is_skill": is_skill,
-# "educative_list": educative_list,
-# "routine": routine,
-# "skill_link_list": skill_link_list,
-# "difficulty": passe.difficulty,
-# "number_of_skill": passe.number_of_skill,
-# "number_of_educative": number_of_educative,
-# }
-# return render(request, "passes/details.html", context)
+ context = {
+ "is_skill": is_skill,
+ "traininground": traininground,
+ "educative_list": educative_list,
+ "routine": routine,
+ "skill_link_list": skill_link_list,
+ "content": content,
+ "is_wc": traininground.is_regexp_wc
+ # "number_of_educative": number_of_educative,
+ }
+ return render(request, "trainingrounds/details.html", context)
-# @login_required
-# @require_http_methods(["GET", "POST"])
-# def passe_create_or_update(request, passe_id=None):
-# """Création d'un passage.
+@login_required
+@require_http_methods(["GET", "POST"])
+def traininground_create_or_update(request, traininground_id=None):
+ """Création d'un passage.
-# Args:
-# passe_id (int) identifiant d'un object de classe .
-# """
-# if passe_id:
-# passe = get_object_or_404(Passe, pk=passe_id)
-# else:
-# passe = None
+ Args:
+ traininground_id (int) identifiant d'un object de classe .
+ """
+ if traininground_id:
+ traininground = get_object_or_404(TrainingRound, pk=traininground_id)
+ else:
+ traininground = None
-# if request.method == "POST":
-# form = PasseForm(request.POST, instance=passe)
+ if request.method == "POST":
+ form = TrainingRoundForm(request.POST, instance=traininground)
-# if form.is_valid():
-# passe = form.save()
-# return HttpResponseRedirect(reverse("passe_details", args=(passe.pk,)))
+ if form.is_valid():
+ traininground = form.save()
+ return HttpResponseRedirect(
+ reverse("traininground_details", args=(traininground.pk,))
+ )
+ # print(form.errors)
+ return render(request, "trainingrounds/create.html", {"form": form})
-# return render(request, "passes/create.html", {"form": form})
-
-# form = PasseForm(instance=passe)
-# context = {"form": form, "passe_id": passe_id}
-# return render(request, "passes/create.html", context)
+ form = TrainingRoundForm(instance=traininground)
+ context = {"form": form, "traininground_id": traininground_id}
+ return render(request, "trainingrounds/create.html", context)
-# @login_required
-# @require_http_methods(["GET"])
-# def trainingprogram_details(request, date=None, gymnast_id=None):
-# """Détails d'un entraînement."""
+@login_required
+@require_http_methods(["GET"])
+def gymnast_training_details(request, gymnast_training_id):
+ """Détails d'un entraînement."""
-# gymnast = None
-# trainingprogram_id = None
-# if trainingprogram_id is not None:
-# trainingprogram = get_object_or_404(TrainingProgram, pk=trainingprogram_id)
-# trainingprogram_list = None
-# else:
-# trainingprogram = None
-# trainingprogram_list = TrainingProgram.objects.all()
-# parsed_date = pendulum.parse(date).date()
-# if date is not None:
-# trainingprogram_list = trainingprogram_list.filter(date=parsed_date)
+ gymnast_training = get_object_or_404(GymnastTraining, pk=gymnast_training_id)
+ training_rounds = gymnast_training.training_rounds.all()
-# if gymnast_id is not None:
-# gymnast = get_object_or_404(Gymnast, pk=gymnast_id)
-# trainingprogram_list = trainingprogram_list.filter(gymnast=gymnast_id)
-
-# difficulty = 0
-# number_of_skill = 0
-# for trainingprogram in trainingprogram_list:
-# difficulty += trainingprogram.difficulty
-# number_of_skill += trainingprogram.number_of_skill
-
-# context = {
-# "gymnast": gymnast,
-# "date": parsed_date,
-# "difficulty": difficulty,
-# "number_of_skill": number_of_skill,
-# "trainingprogram": trainingprogram,
-# "trainingprogram_list": trainingprogram_list,
-# }
-# return render(request, "trainingprograms/details.html", context)
+ context = {
+ "gymnast": gymnast_training.gymnast,
+ "gymnast_training": gymnast_training,
+ "training_rounds": training_rounds,
+ }
+ return render(request, "gymnasttrainings/details.html", context)
-# @require_http_methods(["POST"])
-# def switch_trainingprogram_line(request):
-# """
-# Recoit dans request deux identifiants de trainingprogram qu'il faut échanger () :
-# - tp_id (int) identifiant d'une instance de TraiingProgram
-# - direction (str) la direction du changement (0: haut, 1: bas)
+@require_http_methods(["POST"])
+def switch_traininground(request):
+ """
+ Recoit dans request deux identifiants de trainingprogram qu'il faut échanger :
+ - tp_id (int) identifiant d'une instance de TraiingProgram
+ - direction (str) la direction du changement (0: haut, 1: bas)
-# J'utilise `32767` comme valeur intermédiaire pour le `rank` car c'est la limite supérieure d'un
-# PositiveSmallIntegerField.
-# """
-# try:
-# target_trainingprogram_id = request.POST.get("tpid", None)
-# direction = int(request.POST.get("direction", 0))
+ J'utilise `32767` comme valeur intermédiaire pour le `rank` car c'est la limite supérieure d'un
+ PositiveSmallIntegerField.
+ """
+ try:
+ target_trainingprogram_id = request.POST.get("tpid", None)
+ direction = int(request.POST.get("direction", 0))
-# target_trainingprogram = get_object_or_404(
-# TrainingProgram, pk=target_trainingprogram_id
-# )
+ target_trainingpround = get_object_or_404(
+ GymnastTrainingRound, pk=target_trainingprogram_id
+ )
-# if direction == 0:
-# source_trainingprogram = (
-# TrainingProgram.objects.filter(rank__lt=target_trainingprogram.rank)
-# .order_by("-id")
-# .first()
-# )
-# else:
-# source_trainingprogram = (
-# TrainingProgram.objects.filter(rank__gt=target_trainingprogram.rank)
-# .order_by("id")
-# .first()
-# )
+ if direction == 0:
+ source_traininground = (
+ GymnastTrainingRound.objects.filter(rank__lt=target_trainingpround.rank)
+ .order_by("-id")
+ .first()
+ )
+ else:
+ source_traininground = (
+ GymnastTrainingRound.objects.filter(rank__gt=target_trainingpround.rank)
+ .order_by("id")
+ .first()
+ )
-# saved_source_rank = source_trainingprogram.rank
-# saved_target_rank = target_trainingprogram.rank
-# source_trainingprogram.rank = 32767
-# source_trainingprogram.save()
-# target_trainingprogram.rank = saved_source_rank
-# target_trainingprogram.save()
-# source_trainingprogram.rank = saved_target_rank
-# source_trainingprogram.save()
+ saved_source_rank = source_traininground.rank
+ saved_target_rank = target_trainingpround.rank
+ source_traininground.rank = 32767
+ source_traininground.save()
+ target_trainingpround.rank = saved_source_rank
+ target_trainingpround.save()
+ source_traininground.rank = saved_target_rank
+ source_traininground.save()
-# return HttpResponse(200)
-# except Exception:
-# return HttpResponse(409)
+ return HttpResponse(200)
+ except Exception:
+ return HttpResponse(409)
diff --git a/jarvis/people/templates/gymnasts/tabs/tab_intensity_and_chronos.html b/jarvis/people/templates/gymnasts/tabs/tab_intensity_and_chronos.html
index 79f3b92..b4ef3ac 100644
--- a/jarvis/people/templates/gymnasts/tabs/tab_intensity_and_chronos.html
+++ b/jarvis/people/templates/gymnasts/tabs/tab_intensity_and_chronos.html
@@ -82,9 +82,9 @@
Training Program
- {% if date_list %}
- {% for date in date_list %}
-
{{ date|date:"l j F Y" }}
+ {% if training_list %}
+ {% for training in training_list %}
+
{{ training.date|date:"l j F Y" }}
{% endfor %}
{% else %}
Pas de training planifié.
diff --git a/jarvis/people/views.py b/jarvis/people/views.py
index 87be0d3..5d578d0 100644
--- a/jarvis/people/views.py
+++ b/jarvis/people/views.py
@@ -21,7 +21,7 @@ import pendulum
from jarvis.followup.models import Event
from jarvis.followup.forms import GymnastHasRoutineForm
-# from jarvis.objective.models import TrainingProgram
+from jarvis.objective.models import GymnastTraining
from jarvis.followup.models import (
Note,
Plan,
@@ -258,12 +258,7 @@ def gymnast_display_scores_chrono(request, gymnast_id):
).order_by("date")
base_queryset = chrono_list.values("date").annotate(score_avg=Avg("tof"))
today = pendulum.now().date()
- # date_list = (
- # TrainingProgram.objects.filter(gymnast=gymnast_id, date__gte=today)
- # .values_list("date", flat=True)
- # .order_by("date")
- # .distinct()
- # )
+ training_list = GymnastTraining.objects.filter(gymnast=gymnast_id, date__gte=today)
context = {
"intensity_list": intensity_list,
@@ -272,7 +267,7 @@ def gymnast_display_scores_chrono(request, gymnast_id):
"chrono_r1": base_queryset.filter(chrono_type=1),
"chrono_r2": base_queryset.filter(chrono_type=2),
"chrono_rf": base_queryset.filter(chrono_type=3),
- # "date_list": date_list,
+ "training_list": training_list,
"gymnast_id": gymnast_id,
}
return render(request, "gymnasts/tabs/tab_intensity_and_chronos.html", context)