From c6fbab91fefcb21dc556d4f44fe351265aee2831 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 01/63] Rebase on master to take Note and Report functionnalities --- templates/followup/notes/create.html | 58 +++++ templates/followup/notes/details.html | 19 ++ templates/followup/notes/list.html | 76 +++++++ .../gymnasts/list_events_and_notes.html | 204 ++++++++++++++++++ ultron/followup/urls.py | 28 +++ ultron/followup/views.py | 105 ++++++++- 6 files changed, 489 insertions(+), 1 deletion(-) create mode 100644 templates/followup/notes/create.html create mode 100644 templates/followup/notes/details.html create mode 100644 templates/followup/notes/list.html create mode 100644 templates/people/gymnasts/list_events_and_notes.html diff --git a/templates/followup/notes/create.html b/templates/followup/notes/create.html new file mode 100644 index 0000000000..ea37483564 --- /dev/null +++ b/templates/followup/notes/create.html @@ -0,0 +1,58 @@ +{% extends "base.html" %} +{% load static %} +{% load has_group %} + +{% block content %} +
+
+
+
+

{% if note_id %}Edit{% else %}Add{% endif %} notes

+
+
+
+ {% csrf_token %} + {{ form.coach }} +
+ +
+ {{ form.gymnast }} + {{ form.gymnast_related }} + {% if form.gymnast.errors %} {% for error in form.gymnast.errors %}{{error}}{% endfor %}{% endif %} +
+
+
+ +
+ {{ form.informations }} +
+
+
+ +
+
+
+
+
+
+{% endblock %} + +{% block footerscript %} + + +{% if request.session.template == 0 %} + + +{% else %} + + +{% endif %} +{% endblock %} \ No newline at end of file diff --git a/templates/followup/notes/details.html b/templates/followup/notes/details.html new file mode 100644 index 0000000000..e09da3a9aa --- /dev/null +++ b/templates/followup/notes/details.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block content %} +
+
+

{{ note.gymnast }}

+

Note of {{ note.created_at | date:'d-m-Y' }}

+
+
+
+
+

{{ note.to_markdown | safe }}

+
+
+

+
+
+ +{% endblock %} diff --git a/templates/followup/notes/list.html b/templates/followup/notes/list.html new file mode 100644 index 0000000000..f090c38061 --- /dev/null +++ b/templates/followup/notes/list.html @@ -0,0 +1,76 @@ +{% extends "listing.html" %} + +{% block datacontent %} +
+
+
+
+

Notes listing {% if gymnast %}for {{ gymnast }}{% endif %}

+
+
+ +
+
+
+
+
+ {% if note_list %} + + + + + + + + + + + {% for note in note_list %} + + + + + + + {% endfor %} + +
 DateGymnastCoach
+ + {{ note.created_at | date:"d-m-Y" }} + {{ note.gymnast }}{{ note.coach }}
+ {% else %} +

There are no chronos corresponding to your criterias.

+ {% endif %} +
+
+
+{% endblock %} + +{% block footerscript %} + +{% endblock %} \ No newline at end of file diff --git a/templates/people/gymnasts/list_events_and_notes.html b/templates/people/gymnasts/list_events_and_notes.html new file mode 100644 index 0000000000..d008f9d66d --- /dev/null +++ b/templates/people/gymnasts/list_events_and_notes.html @@ -0,0 +1,204 @@ +{% load has_group %} + +
+
+
+
+

Next events

+
+
+ {% if next_event_list %} + + + + + + + + + + + + + {% for event in next_event_list %} + + + + + + + + + {% endfor %} + +
NameTypeDate# weeksPlace
+ +   + + {{ event.name }}{{ event.event_type.name }}{{ event.date_begin | date:"d-m-Y"}}{% if event.number_of_week_from_today < 0 %}{{event.number_of_week_from_today}}{% else %}{{event.number_of_week_from_today}}{% endif %}{{ event.place.name }}
+ {% else %} +

No next event associated to this gymnast.

+ {% endif %} +
+
+
+
+ + + + +
+
+
+
+

Notes

+
+
+ {% if last_notes_list %} + + + + + + + + + + + {% for note in last_notes_list %} + + + + + + {% endfor %} + +
DateCoach
+ + + + {{ note.created_at | date:"d-m-Y" }}{{ note.coach }}
+ {% else %} +

No note for this gymnast.

+ {% endif %} +
+ +
+
+
+ + + +{% if previous_events %} +
+
+
+
+

Previous event

+
+
+ + + + + + + + + + + + + {% for event in previous_event %} + + + + + + + + + {% endfor %} + +
Event's nameTypeDate# weeksPlace
+ + + + {{ event.name }}{{ event.event_type.name }}{{ event.date_begin | date:"d-m-Y"}}{{ event.number_of_week_from_today }}{{ event.place.name }}
+
+
+
+
+
+
+

Last notes

+
+
+ + + + + + + + + + + {% for note in last_notes_list %} + + + + + + {% endfor %} + +
DateCoach
+ + + + {{ note.created_at | date:"d-m-Y" }}{{ note.coach }}
+
+
+
+
+ + +{% endif %} diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index ab5fb68f80..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -18,6 +18,19 @@ urlpatterns = [ ), path(r"chrono/edit//", views.chrono_create_or_update, name="chrono_update"), path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), path(r"note/", views.note_listing, name="note_list"), @@ -36,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", diff --git a/ultron/followup/views.py b/ultron/followup/views.py index 8c1a6d51e0..5aec735cd9 100644 --- a/ultron/followup/views.py +++ b/ultron/followup/views.py @@ -44,7 +44,11 @@ import pendulum @login_required @require_http_methods(["GET"]) def jump_chrono_details(request, chrono_id): - """Récupère toutes les informations d'un chrono""" + """Récupère toutes les informations d'un chrono + + Args: + chrono_id (int) identifiant chrono + """ chrono = get_object_or_404(Chrono, pk=chrono_id) @@ -63,6 +67,105 @@ def jump_chrono_details(request, chrono_id): return render(request, "followup/chronos/details.html", context) +@login_required +@require_http_methods(["GET"]) +def average_jump_chrono_details_between_two_date(request, gymnast_id, routine_type=1, date_begin=None, date_end=None): + """Récupère tout les chronos entre deux date pour un gymnaste et un type de série + Args: + gymnast_id (int) Identifiant d'un gymnaste + routine_type (int) type de série (cf. ultron/followup/models.py > ROUTINE_CHOICE) + date_begin (date) date de début + date_end (date) date de fin + TODO: le cast en date devrait être dans un try ! + """ + + if date_end: + try: + date_end = datetime.strptime(date_end, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_end = pendulum.now().date() + else: + date_end = pendulum.now().date() + + if date_begin: + try: + date_begin = datetime.strptime(date_begin, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_begin = datetime(date_end.year, 9, 1) + else: + date_begin = datetime(date_end.year, 9, 1) + + gymnast = get_object_or_404(Gymnast, pk=gymnast_id) + + stat_values = ChronoDetails.objects \ + .filter(chrono__gymnast=gymnast_id, chrono__chrono_type=routine_type, chrono__date__gte=date_begin, chrono__date__lte=date_end) \ + .values('order') \ + .annotate(avg_score=Avg('value'), max_score=Max('value'), min_score=Min('value')) \ + .order_by('order') + + chrono_list = Chrono.objects.filter(gymnast=gymnast_id, date__gte=date_begin, date__lte=date_end, chrono_type=routine_type) + + context = { + "gymnast": gymnast, + "date_begin": date_begin, + "date_end": date_end, + "chrono_list": chrono_list, + "stat_values": stat_values, + } + return render(request, "followup/chronos/list_details.html", context) + + +@require_http_methods(["POST"]) +def remove_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, deleted = ChronoDetails.objects.filter(chrono=chrono, order=order).delete() + return HttpResponse(200, (row, deleted)) + + +@require_http_methods(["POST"]) +def add_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + value = request.POST.get("value", None) + + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, created = ChronoDetails.objects.get_or_create( + chrono=chrono, order=order, value=value + ) + + return HttpResponse(200, (row, created)) + + +@login_required +@require_http_methods(["GET"]) +def jump_chrono_values_create_or_update(request, chrono_id): + """ + Ajoute des scores de saut à un chrono. + + Args: + chrono_id (int) identifiant chrono + """ + + chrono = get_object_or_404(Chrono, pk=chrono_id) + jump_list = chrono.details.all() + number_of_jump = jump_list.count() + context = { + "chrono": chrono, + "jump_list": jump_list, + "number_of_jump": number_of_jump, + "score_type": chrono.score_type, + } + return render(request, "followup/chronos/add_details.html", context) + + @login_required @require_http_methods(["GET"]) def chrono_listing(request, gymnast_id=None): From a974ca689392bc2272e3ed4fcae4e092e5e7b7d7 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 02/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 9cf15fa96d2eea04094b5cdb369e295ac24ef9fb Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:05:40 +0200 Subject: [PATCH 03/63] Fix followup url test --- ultron/followup/tests_urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ultron/followup/tests_urls.py b/ultron/followup/tests_urls.py index 81aa8c3e1e..1ea4d45774 100644 --- a/ultron/followup/tests_urls.py +++ b/ultron/followup/tests_urls.py @@ -15,7 +15,7 @@ class URLTestCase(TestCase): self.assertEqual(resolve("/follow-up/chrono/details/1/add/").view_name, 'jump_chrono_values_create_or_update') self.assertEqual(resolve("/follow-up/chrono/add_jump_chrono_value/").view_name, 'add_jump_chrono_value') self.assertEqual(resolve("/follow-up/chrono/remove_jump_chrono_value/").view_name, 'remove_jump_chrono_value') - self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/").view_name, 'average_jump_chrono_details') + self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/1/2022-09-01/2022-09-20/").view_name, 'average_jump_chrono_details_between_two_date') # Learned Skill URL self.assertEqual(resolve("/follow-up/learnedskill/add/").view_name, 'learnedskill_create') From 1d54093190c4f13c28a9fd64344bf097c1349cde Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 04/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 28 +++++++++++ ultron/followup/views.py | 105 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 132 insertions(+), 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index ab5fb68f80..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -18,6 +18,19 @@ urlpatterns = [ ), path(r"chrono/edit//", views.chrono_create_or_update, name="chrono_update"), path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), path(r"note/", views.note_listing, name="note_list"), @@ -36,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", diff --git a/ultron/followup/views.py b/ultron/followup/views.py index 2d411b0c69..3e04e0a4a3 100644 --- a/ultron/followup/views.py +++ b/ultron/followup/views.py @@ -44,7 +44,11 @@ import pendulum @login_required @require_http_methods(["GET"]) def jump_chrono_details(request, chrono_id): - """Récupère toutes les informations d'un chrono""" + """Récupère toutes les informations d'un chrono + + Args: + chrono_id (int) identifiant chrono + """ chrono = get_object_or_404(Chrono, pk=chrono_id) @@ -63,6 +67,105 @@ def jump_chrono_details(request, chrono_id): return render(request, "followup/chronos/details.html", context) +@login_required +@require_http_methods(["GET"]) +def average_jump_chrono_details_between_two_date(request, gymnast_id, routine_type=1, date_begin=None, date_end=None): + """Récupère tout les chronos entre deux date pour un gymnaste et un type de série + Args: + gymnast_id (int) Identifiant d'un gymnaste + routine_type (int) type de série (cf. ultron/followup/models.py > ROUTINE_CHOICE) + date_begin (date) date de début + date_end (date) date de fin + TODO: le cast en date devrait être dans un try ! + """ + + if date_end: + try: + date_end = datetime.strptime(date_end, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_end = pendulum.now().date() + else: + date_end = pendulum.now().date() + + if date_begin: + try: + date_begin = datetime.strptime(date_begin, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_begin = datetime(date_end.year, 9, 1) + else: + date_begin = datetime(date_end.year, 9, 1) + + gymnast = get_object_or_404(Gymnast, pk=gymnast_id) + + stat_values = ChronoDetails.objects \ + .filter(chrono__gymnast=gymnast_id, chrono__chrono_type=routine_type, chrono__date__gte=date_begin, chrono__date__lte=date_end) \ + .values('order') \ + .annotate(avg_score=Avg('value'), max_score=Max('value'), min_score=Min('value')) \ + .order_by('order') + + chrono_list = Chrono.objects.filter(gymnast=gymnast_id, date__gte=date_begin, date__lte=date_end, chrono_type=routine_type) + + context = { + "gymnast": gymnast, + "date_begin": date_begin, + "date_end": date_end, + "chrono_list": chrono_list, + "stat_values": stat_values, + } + return render(request, "followup/chronos/list_details.html", context) + + +@require_http_methods(["POST"]) +def remove_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, deleted = ChronoDetails.objects.filter(chrono=chrono, order=order).delete() + return HttpResponse(200, (row, deleted)) + + +@require_http_methods(["POST"]) +def add_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + value = request.POST.get("value", None) + + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, created = ChronoDetails.objects.get_or_create( + chrono=chrono, order=order, value=value + ) + + return HttpResponse(200, (row, created)) + + +@login_required +@require_http_methods(["GET"]) +def jump_chrono_values_create_or_update(request, chrono_id): + """ + Ajoute des scores de saut à un chrono. + + Args: + chrono_id (int) identifiant chrono + """ + + chrono = get_object_or_404(Chrono, pk=chrono_id) + jump_list = chrono.details.all() + number_of_jump = jump_list.count() + context = { + "chrono": chrono, + "jump_list": jump_list, + "number_of_jump": number_of_jump, + "score_type": chrono.score_type, + } + return render(request, "followup/chronos/add_details.html", context) + + @login_required @require_http_methods(["GET"]) def chrono_listing(request, gymnast_id=None): From 041a12fe8f30c708719f7b6fa123a6b59e1a2c69 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 05/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From d6299fcd573a1693a5cdb856689d05810719a686 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:05:40 +0200 Subject: [PATCH 06/63] Fix followup url test --- ultron/followup/tests_urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ultron/followup/tests_urls.py b/ultron/followup/tests_urls.py index 81aa8c3e1e..1ea4d45774 100644 --- a/ultron/followup/tests_urls.py +++ b/ultron/followup/tests_urls.py @@ -15,7 +15,7 @@ class URLTestCase(TestCase): self.assertEqual(resolve("/follow-up/chrono/details/1/add/").view_name, 'jump_chrono_values_create_or_update') self.assertEqual(resolve("/follow-up/chrono/add_jump_chrono_value/").view_name, 'add_jump_chrono_value') self.assertEqual(resolve("/follow-up/chrono/remove_jump_chrono_value/").view_name, 'remove_jump_chrono_value') - self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/").view_name, 'average_jump_chrono_details') + self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/1/2022-09-01/2022-09-20/").view_name, 'average_jump_chrono_details_between_two_date') # Learned Skill URL self.assertEqual(resolve("/follow-up/learnedskill/add/").view_name, 'learnedskill_create') From 0fe42a97ce59d227c89481f7282240b97432de2f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:15:06 +0200 Subject: [PATCH 07/63] Add icon to chrono list for record details --- templates/followup/chronos/list.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/templates/followup/chronos/list.html b/templates/followup/chronos/list.html index b63b7e131a..fe9b115600 100644 --- a/templates/followup/chronos/list.html +++ b/templates/followup/chronos/list.html @@ -40,6 +40,10 @@ +   + + + {% if chrono.details.all %} From 5b32509d741b30ae954e3d276edfa3e259257e3f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 08/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 28 +++++++++++ ultron/followup/views.py | 105 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 132 insertions(+), 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index ab5fb68f80..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -18,6 +18,19 @@ urlpatterns = [ ), path(r"chrono/edit//", views.chrono_create_or_update, name="chrono_update"), path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), path(r"note/", views.note_listing, name="note_list"), @@ -36,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", diff --git a/ultron/followup/views.py b/ultron/followup/views.py index 2d411b0c69..3e04e0a4a3 100644 --- a/ultron/followup/views.py +++ b/ultron/followup/views.py @@ -44,7 +44,11 @@ import pendulum @login_required @require_http_methods(["GET"]) def jump_chrono_details(request, chrono_id): - """Récupère toutes les informations d'un chrono""" + """Récupère toutes les informations d'un chrono + + Args: + chrono_id (int) identifiant chrono + """ chrono = get_object_or_404(Chrono, pk=chrono_id) @@ -63,6 +67,105 @@ def jump_chrono_details(request, chrono_id): return render(request, "followup/chronos/details.html", context) +@login_required +@require_http_methods(["GET"]) +def average_jump_chrono_details_between_two_date(request, gymnast_id, routine_type=1, date_begin=None, date_end=None): + """Récupère tout les chronos entre deux date pour un gymnaste et un type de série + Args: + gymnast_id (int) Identifiant d'un gymnaste + routine_type (int) type de série (cf. ultron/followup/models.py > ROUTINE_CHOICE) + date_begin (date) date de début + date_end (date) date de fin + TODO: le cast en date devrait être dans un try ! + """ + + if date_end: + try: + date_end = datetime.strptime(date_end, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_end = pendulum.now().date() + else: + date_end = pendulum.now().date() + + if date_begin: + try: + date_begin = datetime.strptime(date_begin, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_begin = datetime(date_end.year, 9, 1) + else: + date_begin = datetime(date_end.year, 9, 1) + + gymnast = get_object_or_404(Gymnast, pk=gymnast_id) + + stat_values = ChronoDetails.objects \ + .filter(chrono__gymnast=gymnast_id, chrono__chrono_type=routine_type, chrono__date__gte=date_begin, chrono__date__lte=date_end) \ + .values('order') \ + .annotate(avg_score=Avg('value'), max_score=Max('value'), min_score=Min('value')) \ + .order_by('order') + + chrono_list = Chrono.objects.filter(gymnast=gymnast_id, date__gte=date_begin, date__lte=date_end, chrono_type=routine_type) + + context = { + "gymnast": gymnast, + "date_begin": date_begin, + "date_end": date_end, + "chrono_list": chrono_list, + "stat_values": stat_values, + } + return render(request, "followup/chronos/list_details.html", context) + + +@require_http_methods(["POST"]) +def remove_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, deleted = ChronoDetails.objects.filter(chrono=chrono, order=order).delete() + return HttpResponse(200, (row, deleted)) + + +@require_http_methods(["POST"]) +def add_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + value = request.POST.get("value", None) + + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, created = ChronoDetails.objects.get_or_create( + chrono=chrono, order=order, value=value + ) + + return HttpResponse(200, (row, created)) + + +@login_required +@require_http_methods(["GET"]) +def jump_chrono_values_create_or_update(request, chrono_id): + """ + Ajoute des scores de saut à un chrono. + + Args: + chrono_id (int) identifiant chrono + """ + + chrono = get_object_or_404(Chrono, pk=chrono_id) + jump_list = chrono.details.all() + number_of_jump = jump_list.count() + context = { + "chrono": chrono, + "jump_list": jump_list, + "number_of_jump": number_of_jump, + "score_type": chrono.score_type, + } + return render(request, "followup/chronos/add_details.html", context) + + @login_required @require_http_methods(["GET"]) def chrono_listing(request, gymnast_id=None): From 44ad25faaa75d65cdd6da09df0a341e557558ff1 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 09/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From b00bec3ab05ea5d02de933408aafbf89992bcb3f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:05:40 +0200 Subject: [PATCH 10/63] Fix followup url test --- ultron/followup/tests_urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ultron/followup/tests_urls.py b/ultron/followup/tests_urls.py index 81aa8c3e1e..1ea4d45774 100644 --- a/ultron/followup/tests_urls.py +++ b/ultron/followup/tests_urls.py @@ -15,7 +15,7 @@ class URLTestCase(TestCase): self.assertEqual(resolve("/follow-up/chrono/details/1/add/").view_name, 'jump_chrono_values_create_or_update') self.assertEqual(resolve("/follow-up/chrono/add_jump_chrono_value/").view_name, 'add_jump_chrono_value') self.assertEqual(resolve("/follow-up/chrono/remove_jump_chrono_value/").view_name, 'remove_jump_chrono_value') - self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/").view_name, 'average_jump_chrono_details') + self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/1/2022-09-01/2022-09-20/").view_name, 'average_jump_chrono_details_between_two_date') # Learned Skill URL self.assertEqual(resolve("/follow-up/learnedskill/add/").view_name, 'learnedskill_create') From 90a0d6a5bb62215f24bb5dd04cf1162f8f24f622 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 11/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 04bbb9a2a60cdf633dd7a61f58e35fc8568f8c15 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:15:06 +0200 Subject: [PATCH 12/63] Add icon to chrono list for record details --- templates/followup/chronos/list.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/templates/followup/chronos/list.html b/templates/followup/chronos/list.html index b63b7e131a..fe9b115600 100644 --- a/templates/followup/chronos/list.html +++ b/templates/followup/chronos/list.html @@ -40,6 +40,10 @@ +   + + + {% if chrono.details.all %} From aae1e3f1b3ecd7779568d0a4558da6ea6f1e78d9 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 13/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 28 +++++++++++ ultron/followup/views.py | 105 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 132 insertions(+), 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index ab5fb68f80..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -18,6 +18,19 @@ urlpatterns = [ ), path(r"chrono/edit//", views.chrono_create_or_update, name="chrono_update"), path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), path(r"note/", views.note_listing, name="note_list"), @@ -36,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", diff --git a/ultron/followup/views.py b/ultron/followup/views.py index 2d411b0c69..3e04e0a4a3 100644 --- a/ultron/followup/views.py +++ b/ultron/followup/views.py @@ -44,7 +44,11 @@ import pendulum @login_required @require_http_methods(["GET"]) def jump_chrono_details(request, chrono_id): - """Récupère toutes les informations d'un chrono""" + """Récupère toutes les informations d'un chrono + + Args: + chrono_id (int) identifiant chrono + """ chrono = get_object_or_404(Chrono, pk=chrono_id) @@ -63,6 +67,105 @@ def jump_chrono_details(request, chrono_id): return render(request, "followup/chronos/details.html", context) +@login_required +@require_http_methods(["GET"]) +def average_jump_chrono_details_between_two_date(request, gymnast_id, routine_type=1, date_begin=None, date_end=None): + """Récupère tout les chronos entre deux date pour un gymnaste et un type de série + Args: + gymnast_id (int) Identifiant d'un gymnaste + routine_type (int) type de série (cf. ultron/followup/models.py > ROUTINE_CHOICE) + date_begin (date) date de début + date_end (date) date de fin + TODO: le cast en date devrait être dans un try ! + """ + + if date_end: + try: + date_end = datetime.strptime(date_end, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_end = pendulum.now().date() + else: + date_end = pendulum.now().date() + + if date_begin: + try: + date_begin = datetime.strptime(date_begin, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_begin = datetime(date_end.year, 9, 1) + else: + date_begin = datetime(date_end.year, 9, 1) + + gymnast = get_object_or_404(Gymnast, pk=gymnast_id) + + stat_values = ChronoDetails.objects \ + .filter(chrono__gymnast=gymnast_id, chrono__chrono_type=routine_type, chrono__date__gte=date_begin, chrono__date__lte=date_end) \ + .values('order') \ + .annotate(avg_score=Avg('value'), max_score=Max('value'), min_score=Min('value')) \ + .order_by('order') + + chrono_list = Chrono.objects.filter(gymnast=gymnast_id, date__gte=date_begin, date__lte=date_end, chrono_type=routine_type) + + context = { + "gymnast": gymnast, + "date_begin": date_begin, + "date_end": date_end, + "chrono_list": chrono_list, + "stat_values": stat_values, + } + return render(request, "followup/chronos/list_details.html", context) + + +@require_http_methods(["POST"]) +def remove_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, deleted = ChronoDetails.objects.filter(chrono=chrono, order=order).delete() + return HttpResponse(200, (row, deleted)) + + +@require_http_methods(["POST"]) +def add_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + value = request.POST.get("value", None) + + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, created = ChronoDetails.objects.get_or_create( + chrono=chrono, order=order, value=value + ) + + return HttpResponse(200, (row, created)) + + +@login_required +@require_http_methods(["GET"]) +def jump_chrono_values_create_or_update(request, chrono_id): + """ + Ajoute des scores de saut à un chrono. + + Args: + chrono_id (int) identifiant chrono + """ + + chrono = get_object_or_404(Chrono, pk=chrono_id) + jump_list = chrono.details.all() + number_of_jump = jump_list.count() + context = { + "chrono": chrono, + "jump_list": jump_list, + "number_of_jump": number_of_jump, + "score_type": chrono.score_type, + } + return render(request, "followup/chronos/add_details.html", context) + + @login_required @require_http_methods(["GET"]) def chrono_listing(request, gymnast_id=None): From 11e3334707f8ee3588d979ca19fe725854357a85 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 14/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 01d5b5d363ff8ac73f52f1e2a32825d073b15679 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:05:40 +0200 Subject: [PATCH 15/63] Fix followup url test --- ultron/followup/tests_urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ultron/followup/tests_urls.py b/ultron/followup/tests_urls.py index 81aa8c3e1e..1ea4d45774 100644 --- a/ultron/followup/tests_urls.py +++ b/ultron/followup/tests_urls.py @@ -15,7 +15,7 @@ class URLTestCase(TestCase): self.assertEqual(resolve("/follow-up/chrono/details/1/add/").view_name, 'jump_chrono_values_create_or_update') self.assertEqual(resolve("/follow-up/chrono/add_jump_chrono_value/").view_name, 'add_jump_chrono_value') self.assertEqual(resolve("/follow-up/chrono/remove_jump_chrono_value/").view_name, 'remove_jump_chrono_value') - self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/").view_name, 'average_jump_chrono_details') + self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/1/2022-09-01/2022-09-20/").view_name, 'average_jump_chrono_details_between_two_date') # Learned Skill URL self.assertEqual(resolve("/follow-up/learnedskill/add/").view_name, 'learnedskill_create') From ca1486bfb5c7c425f005053adf59fc74eb979119 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 16/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From e2a9d33e9708a5db7711b91df773361da777d1ed Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:15:06 +0200 Subject: [PATCH 17/63] Add icon to chrono list for record details --- templates/followup/chronos/list.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/templates/followup/chronos/list.html b/templates/followup/chronos/list.html index b63b7e131a..fe9b115600 100644 --- a/templates/followup/chronos/list.html +++ b/templates/followup/chronos/list.html @@ -40,6 +40,10 @@ +   + + + {% if chrono.details.all %} From f12d8f488641def751addc64db2eb7dbc303ce2a Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 18/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From bb2c5f3189bccef804399d69ed517422d720bc5e Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 19/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 8bfb4a5b4ab3eeb20f35b7ec7b6bcfefa8163a3f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 20/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 0d4750d4e6dc5d47a6f40fd2645fd66ce4d4fb9f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Sat, 1 Oct 2022 07:37:22 +0200 Subject: [PATCH 21/63] Update URL --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 3da336eb16c4ec47c8f54b919a544e5e30bfa70f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 22/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 28 +++++++++++ ultron/followup/views.py | 105 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 132 insertions(+), 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index ab5fb68f80..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -18,6 +18,19 @@ urlpatterns = [ ), path(r"chrono/edit//", views.chrono_create_or_update, name="chrono_update"), path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), path(r"note/", views.note_listing, name="note_list"), @@ -36,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", diff --git a/ultron/followup/views.py b/ultron/followup/views.py index 2d411b0c69..3e04e0a4a3 100644 --- a/ultron/followup/views.py +++ b/ultron/followup/views.py @@ -44,7 +44,11 @@ import pendulum @login_required @require_http_methods(["GET"]) def jump_chrono_details(request, chrono_id): - """Récupère toutes les informations d'un chrono""" + """Récupère toutes les informations d'un chrono + + Args: + chrono_id (int) identifiant chrono + """ chrono = get_object_or_404(Chrono, pk=chrono_id) @@ -63,6 +67,105 @@ def jump_chrono_details(request, chrono_id): return render(request, "followup/chronos/details.html", context) +@login_required +@require_http_methods(["GET"]) +def average_jump_chrono_details_between_two_date(request, gymnast_id, routine_type=1, date_begin=None, date_end=None): + """Récupère tout les chronos entre deux date pour un gymnaste et un type de série + Args: + gymnast_id (int) Identifiant d'un gymnaste + routine_type (int) type de série (cf. ultron/followup/models.py > ROUTINE_CHOICE) + date_begin (date) date de début + date_end (date) date de fin + TODO: le cast en date devrait être dans un try ! + """ + + if date_end: + try: + date_end = datetime.strptime(date_end, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_end = pendulum.now().date() + else: + date_end = pendulum.now().date() + + if date_begin: + try: + date_begin = datetime.strptime(date_begin, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_begin = datetime(date_end.year, 9, 1) + else: + date_begin = datetime(date_end.year, 9, 1) + + gymnast = get_object_or_404(Gymnast, pk=gymnast_id) + + stat_values = ChronoDetails.objects \ + .filter(chrono__gymnast=gymnast_id, chrono__chrono_type=routine_type, chrono__date__gte=date_begin, chrono__date__lte=date_end) \ + .values('order') \ + .annotate(avg_score=Avg('value'), max_score=Max('value'), min_score=Min('value')) \ + .order_by('order') + + chrono_list = Chrono.objects.filter(gymnast=gymnast_id, date__gte=date_begin, date__lte=date_end, chrono_type=routine_type) + + context = { + "gymnast": gymnast, + "date_begin": date_begin, + "date_end": date_end, + "chrono_list": chrono_list, + "stat_values": stat_values, + } + return render(request, "followup/chronos/list_details.html", context) + + +@require_http_methods(["POST"]) +def remove_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, deleted = ChronoDetails.objects.filter(chrono=chrono, order=order).delete() + return HttpResponse(200, (row, deleted)) + + +@require_http_methods(["POST"]) +def add_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + value = request.POST.get("value", None) + + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, created = ChronoDetails.objects.get_or_create( + chrono=chrono, order=order, value=value + ) + + return HttpResponse(200, (row, created)) + + +@login_required +@require_http_methods(["GET"]) +def jump_chrono_values_create_or_update(request, chrono_id): + """ + Ajoute des scores de saut à un chrono. + + Args: + chrono_id (int) identifiant chrono + """ + + chrono = get_object_or_404(Chrono, pk=chrono_id) + jump_list = chrono.details.all() + number_of_jump = jump_list.count() + context = { + "chrono": chrono, + "jump_list": jump_list, + "number_of_jump": number_of_jump, + "score_type": chrono.score_type, + } + return render(request, "followup/chronos/add_details.html", context) + + @login_required @require_http_methods(["GET"]) def chrono_listing(request, gymnast_id=None): From af9684f0e441af97b9b533571eaaf4e2c158979b Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 23/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From c09b1c72b69780c237e86a580ebb3ddc37c28d95 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:05:40 +0200 Subject: [PATCH 24/63] Fix followup url test --- ultron/followup/tests_urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ultron/followup/tests_urls.py b/ultron/followup/tests_urls.py index 81aa8c3e1e..1ea4d45774 100644 --- a/ultron/followup/tests_urls.py +++ b/ultron/followup/tests_urls.py @@ -15,7 +15,7 @@ class URLTestCase(TestCase): self.assertEqual(resolve("/follow-up/chrono/details/1/add/").view_name, 'jump_chrono_values_create_or_update') self.assertEqual(resolve("/follow-up/chrono/add_jump_chrono_value/").view_name, 'add_jump_chrono_value') self.assertEqual(resolve("/follow-up/chrono/remove_jump_chrono_value/").view_name, 'remove_jump_chrono_value') - self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/").view_name, 'average_jump_chrono_details') + self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/1/2022-09-01/2022-09-20/").view_name, 'average_jump_chrono_details_between_two_date') # Learned Skill URL self.assertEqual(resolve("/follow-up/learnedskill/add/").view_name, 'learnedskill_create') From be08129b56e0a5516d5929d63fe0f93bd9f9eeb1 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 25/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 8a3ccd46b473f3c82e6d61fc1b5b7abc03f25e6c Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:15:06 +0200 Subject: [PATCH 26/63] Add icon to chrono list for record details --- templates/followup/chronos/list.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/templates/followup/chronos/list.html b/templates/followup/chronos/list.html index b63b7e131a..fe9b115600 100644 --- a/templates/followup/chronos/list.html +++ b/templates/followup/chronos/list.html @@ -40,6 +40,10 @@ +   + + + {% if chrono.details.all %} From 826bbf1f97d4227d228d90109d0b472cf1b232fb Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 27/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 85647b6ac40ad61cad3f83e1cffac28755bf6da3 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 28/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From f30b49987ee698636fa18b688980b887b6f971f8 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 29/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 59741477ccd420f5c78d92f796bd6270751fe724 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 30/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 1f61c232f5ced13efe5de0382e48712ddee96fb9 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 31/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From ff702b4df7bcbabc86f871baf76aa740ad949938 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 32/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From fc62f089aca8b45a71f4cb6a1b692e1762688374 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 33/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 65a605a3f4cbb77aff31543380f354d19ac0e308 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 34/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 50544e72fcdf58a6aac33aca00a2ec267dda07b8 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Sat, 1 Oct 2022 07:37:22 +0200 Subject: [PATCH 35/63] Update URL --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From d71e838fdc654003f922cf22b7d4d1d1ccfd18b7 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 36/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 28 +++++++++++ ultron/followup/views.py | 105 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 132 insertions(+), 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index ab5fb68f80..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -18,6 +18,19 @@ urlpatterns = [ ), path(r"chrono/edit//", views.chrono_create_or_update, name="chrono_update"), path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//", views.jump_chrono_details, name="jump_chrono_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), path(r"note/", views.note_listing, name="note_list"), @@ -36,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", diff --git a/ultron/followup/views.py b/ultron/followup/views.py index 2d411b0c69..3e04e0a4a3 100644 --- a/ultron/followup/views.py +++ b/ultron/followup/views.py @@ -44,7 +44,11 @@ import pendulum @login_required @require_http_methods(["GET"]) def jump_chrono_details(request, chrono_id): - """Récupère toutes les informations d'un chrono""" + """Récupère toutes les informations d'un chrono + + Args: + chrono_id (int) identifiant chrono + """ chrono = get_object_or_404(Chrono, pk=chrono_id) @@ -63,6 +67,105 @@ def jump_chrono_details(request, chrono_id): return render(request, "followup/chronos/details.html", context) +@login_required +@require_http_methods(["GET"]) +def average_jump_chrono_details_between_two_date(request, gymnast_id, routine_type=1, date_begin=None, date_end=None): + """Récupère tout les chronos entre deux date pour un gymnaste et un type de série + Args: + gymnast_id (int) Identifiant d'un gymnaste + routine_type (int) type de série (cf. ultron/followup/models.py > ROUTINE_CHOICE) + date_begin (date) date de début + date_end (date) date de fin + TODO: le cast en date devrait être dans un try ! + """ + + if date_end: + try: + date_end = datetime.strptime(date_end, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_end = pendulum.now().date() + else: + date_end = pendulum.now().date() + + if date_begin: + try: + date_begin = datetime.strptime(date_begin, '%Y-%m-%d').date() + except (ValueError, TypeError): + date_begin = datetime(date_end.year, 9, 1) + else: + date_begin = datetime(date_end.year, 9, 1) + + gymnast = get_object_or_404(Gymnast, pk=gymnast_id) + + stat_values = ChronoDetails.objects \ + .filter(chrono__gymnast=gymnast_id, chrono__chrono_type=routine_type, chrono__date__gte=date_begin, chrono__date__lte=date_end) \ + .values('order') \ + .annotate(avg_score=Avg('value'), max_score=Max('value'), min_score=Min('value')) \ + .order_by('order') + + chrono_list = Chrono.objects.filter(gymnast=gymnast_id, date__gte=date_begin, date__lte=date_end, chrono_type=routine_type) + + context = { + "gymnast": gymnast, + "date_begin": date_begin, + "date_end": date_end, + "chrono_list": chrono_list, + "stat_values": stat_values, + } + return render(request, "followup/chronos/list_details.html", context) + + +@require_http_methods(["POST"]) +def remove_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, deleted = ChronoDetails.objects.filter(chrono=chrono, order=order).delete() + return HttpResponse(200, (row, deleted)) + + +@require_http_methods(["POST"]) +def add_jump_chrono_value(request): + """ + Recoit trois informations permettant d'ajouter le chrono d'un saut à un chrono + """ + chrono_id = request.POST.get("chrono_id", None) + order = request.POST.get("order", None) + value = request.POST.get("value", None) + + chrono = get_object_or_404(Chrono, pk=chrono_id) + row, created = ChronoDetails.objects.get_or_create( + chrono=chrono, order=order, value=value + ) + + return HttpResponse(200, (row, created)) + + +@login_required +@require_http_methods(["GET"]) +def jump_chrono_values_create_or_update(request, chrono_id): + """ + Ajoute des scores de saut à un chrono. + + Args: + chrono_id (int) identifiant chrono + """ + + chrono = get_object_or_404(Chrono, pk=chrono_id) + jump_list = chrono.details.all() + number_of_jump = jump_list.count() + context = { + "chrono": chrono, + "jump_list": jump_list, + "number_of_jump": number_of_jump, + "score_type": chrono.score_type, + } + return render(request, "followup/chronos/add_details.html", context) + + @login_required @require_http_methods(["GET"]) def chrono_listing(request, gymnast_id=None): From 5887835f423410ca86cec70da4661f1a70e2ae43 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 37/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 7e72b74a0d273c6453659302d6b16e0f8609c5bb Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:05:40 +0200 Subject: [PATCH 38/63] Fix followup url test --- ultron/followup/tests_urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ultron/followup/tests_urls.py b/ultron/followup/tests_urls.py index 81aa8c3e1e..1ea4d45774 100644 --- a/ultron/followup/tests_urls.py +++ b/ultron/followup/tests_urls.py @@ -15,7 +15,7 @@ class URLTestCase(TestCase): self.assertEqual(resolve("/follow-up/chrono/details/1/add/").view_name, 'jump_chrono_values_create_or_update') self.assertEqual(resolve("/follow-up/chrono/add_jump_chrono_value/").view_name, 'add_jump_chrono_value') self.assertEqual(resolve("/follow-up/chrono/remove_jump_chrono_value/").view_name, 'remove_jump_chrono_value') - self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/").view_name, 'average_jump_chrono_details') + self.assertEqual(resolve("/follow-up/chrono/detailed_score_for_date_range/1/1/2022-09-01/2022-09-20/").view_name, 'average_jump_chrono_details_between_two_date') # Learned Skill URL self.assertEqual(resolve("/follow-up/learnedskill/add/").view_name, 'learnedskill_create') From beff59de8a8a99c9ab5cdf33f82266bdecdd0dd8 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 39/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 153292c2fd4940ee510c0da4e117ad41c2e49084 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 11:15:06 +0200 Subject: [PATCH 40/63] Add icon to chrono list for record details --- templates/followup/chronos/list.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/templates/followup/chronos/list.html b/templates/followup/chronos/list.html index b63b7e131a..fe9b115600 100644 --- a/templates/followup/chronos/list.html +++ b/templates/followup/chronos/list.html @@ -40,6 +40,10 @@ +   + + + {% if chrono.details.all %} From 38d16160b7ff09fa3e3ba97037fedef1b4e524bb Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 41/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 399a9f10d471111115ed86b2dc959e0062b32248 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 42/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 0a4deb2f427fd51a87a945ed5efd7bdbded40b3f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 43/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 7fc90f8af1a9f1109ff57be2591008b8cc399914 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 44/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From e576e7b6f3687411c43a38bafcf599dbd21c8eb1 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 45/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 02eb1fef48f2b4649b3c1415d155edf1e59489fc Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 46/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 68ca768673f2063f7eb21b92e45026765287573c Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 47/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From e4c87334dd6b9d8117865c4c8a395c1580d116bb Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 48/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 0ad09ba2785085fa729f56299c19c58c64458161 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Sat, 1 Oct 2022 07:37:22 +0200 Subject: [PATCH 49/63] Update URL --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 01aab86f6fb43c1b7c084126f26987fd7e5093c8 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 50/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 932709325fc9be26d6d87e7bb25bea9d78cf03b4 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 51/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From ae6294b5f3ede4c4f89531c533ce58e630931da9 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 52/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 32e87cc0ca25dab76c2120e20c34dbc0bf378aaf Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 53/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 62f27b5a604dca4a09847bcbef49c57cc52b5489 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 54/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From a23b1ecf59a1a3b1f2b39148f57dd329ed31e759 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 55/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From fccc25d14f592da5383e3b03ed42c195a3aa800f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 56/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 851526280afd4cba711461003c0ecc07ef2b5aa1 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 57/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 4cededf951bf31cc952631a86591b985a8f60e5d Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 58/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From 2c7eabcf5c84416504d3a62a6d848a4fdb208482 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 59/63] Rebase on master to take Note and Report functionnalities --- ultron/followup/urls.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index cafc51e181..7069f26e10 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,6 +49,21 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), + path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), + path( + r"chrono/add_jump_chrono_value/", + views.add_jump_chrono_value, + name="add_jump_chrono_value" + ), + path( + r"chrono/remove_jump_chrono_value/", + views.remove_jump_chrono_value, + name="remove_jump_chrono_value" + ), + path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), +>>>>>>> 31a996c (CTRL+Z) + + path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From cd6707578b4b4c5561a68751f8b3b7eb9a396d38 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:35:30 +0200 Subject: [PATCH 60/63] Bug fix in followup/urls.py file --- ultron/followup/urls.py | 1 - 1 file changed, 1 deletion(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 7069f26e10..616c334202 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -61,7 +61,6 @@ urlpatterns = [ name="remove_jump_chrono_value" ), path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), ->>>>>>> 31a996c (CTRL+Z) path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), From 7028bf72cf34767539e85efa1bee9a5cf48eecae Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Fri, 30 Sep 2022 10:29:48 +0200 Subject: [PATCH 61/63] Rebase on master to take Note and Report functionnalities --- .../gymnasts/list_events_and_notes.html | 204 ++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 templates/people/gymnasts/list_events_and_notes.html diff --git a/templates/people/gymnasts/list_events_and_notes.html b/templates/people/gymnasts/list_events_and_notes.html new file mode 100644 index 0000000000..d008f9d66d --- /dev/null +++ b/templates/people/gymnasts/list_events_and_notes.html @@ -0,0 +1,204 @@ +{% load has_group %} + +
+
+
+
+

Next events

+
+
+ {% if next_event_list %} + + + + + + + + + + + + + {% for event in next_event_list %} + + + + + + + + + {% endfor %} + +
NameTypeDate# weeksPlace
+ +   + + {{ event.name }}{{ event.event_type.name }}{{ event.date_begin | date:"d-m-Y"}}{% if event.number_of_week_from_today < 0 %}{{event.number_of_week_from_today}}{% else %}{{event.number_of_week_from_today}}{% endif %}{{ event.place.name }}
+ {% else %} +

No next event associated to this gymnast.

+ {% endif %} +
+
+
+
+ + + + +
+
+
+
+

Notes

+
+
+ {% if last_notes_list %} + + + + + + + + + + + {% for note in last_notes_list %} + + + + + + {% endfor %} + +
DateCoach
+ + + + {{ note.created_at | date:"d-m-Y" }}{{ note.coach }}
+ {% else %} +

No note for this gymnast.

+ {% endif %} +
+ +
+
+
+ + + +{% if previous_events %} +
+
+
+
+

Previous event

+
+
+ + + + + + + + + + + + + {% for event in previous_event %} + + + + + + + + + {% endfor %} + +
Event's nameTypeDate# weeksPlace
+ + + + {{ event.name }}{{ event.event_type.name }}{{ event.date_begin | date:"d-m-Y"}}{{ event.number_of_week_from_today }}{{ event.place.name }}
+
+
+
+
+
+
+

Last notes

+
+
+ + + + + + + + + + + {% for note in last_notes_list %} + + + + + + {% endfor %} + +
DateCoach
+ + + + {{ note.created_at | date:"d-m-Y" }}{{ note.coach }}
+
+
+
+
+ + +{% endif %} From 7a1630104def23612218b4d2a8b0fbe7031e7088 Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Sat, 1 Oct 2022 07:37:22 +0200 Subject: [PATCH 62/63] Update URL --- ultron/followup/urls.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/ultron/followup/urls.py b/ultron/followup/urls.py index 616c334202..cafc51e181 100644 --- a/ultron/followup/urls.py +++ b/ultron/followup/urls.py @@ -49,20 +49,6 @@ urlpatterns = [ path(r"note/details//", views.note_details, name="note_details"), - path(r"chrono/details//add/", views.jump_chrono_values_create_or_update, name="jump_chrono_values_create_or_update"), - path( - r"chrono/add_jump_chrono_value/", - views.add_jump_chrono_value, - name="add_jump_chrono_value" - ), - path( - r"chrono/remove_jump_chrono_value/", - views.remove_jump_chrono_value, - name="remove_jump_chrono_value" - ), - path(r"chrono/detailed_score_for_date_range/////", views.average_jump_chrono_details_between_two_date, name="average_jump_chrono_details_between_two_date"), - - path(r"learnedskill/add/", views.learnedskill_create_or_update, name="learnedskill_create"), path( r"learnedskill/add//", From c62b2c52e31f527c50c1859e33c49db6ab45f09f Mon Sep 17 00:00:00 2001 From: Gregory Trullemans Date: Tue, 4 Oct 2022 19:47:30 +0200 Subject: [PATCH 63/63] Add average chrono detail template --- templates/followup/chronos/details.html | 24 ++-- templates/followup/chronos/list_details.html | 112 +++++++++++++++++++ 2 files changed, 128 insertions(+), 8 deletions(-) create mode 100644 templates/followup/chronos/list_details.html diff --git a/templates/followup/chronos/details.html b/templates/followup/chronos/details.html index 5b9f05c475..b6d89298f4 100644 --- a/templates/followup/chronos/details.html +++ b/templates/followup/chronos/details.html @@ -4,7 +4,7 @@

{{ chrono.gymnast }}

-

Chrono {{ chrono.date | date:'d-m-Y' }}

+

Chrono of {{ chrono.date | date:'d N Y' }}

@@ -23,7 +23,7 @@
- +
@@ -33,7 +33,7 @@ {% block footerscript %} +{% endblock %}