Update event listing

This commit is contained in:
Gregory Trullemans 2023-10-17 20:47:21 +02:00
parent 3a94fe636f
commit 810c63460c
5 changed files with 40 additions and 14 deletions

View File

@ -91,7 +91,7 @@
</ul>
</div>
</li>
{% menuitem 'event_list' 'fal fa-calendar-alt' 'Events' %}
{% menuitem 'next_event_list' 'fal fa-calendar-alt' 'Events' %}
{% if request.user|has_group:"trainer" %}
{% menuitem 'injuries_list' 'fal fa-comment-alt-medical' 'Injuries' %}
{% endif %}

View File

@ -1078,7 +1078,8 @@ def heightweight_create_or_update(request, heightweight_id=None, gymnast_id=None
fail_silently=False,
html_message=f"""<p>Bonjour,</p>
<p>Un nouveau poids/taille enregistré pour {gymnast} : {height}cm / {weight}kg ({bmi}).</p><br />
<p>Excellente journée</p><p>Jarvis</p>""",
<p>Excellente journée</p>
<p>Jarvis</p>""",
)
return HttpResponseRedirect(
@ -1218,7 +1219,8 @@ def routinedone_create_or_update(request, routinedone_id=None, gymnast_id=None):
fail_silently=False,
html_message=f"""<p>Bonjour,</p>
<p>Nouvelle série comptabilisée pour {gymnast}.</p><br />
<p>Excellente journée</p><p>Jarvis</p>""",
<p>Excellente journée</p>
<p>Jarvis</p>""",
)
return HttpResponseRedirect(
@ -1293,8 +1295,10 @@ def plan_create_or_update(request, plan_id=None, gymnast_id=None, skill_id=None)
receiver,
fail_silently=False,
html_message=f"""<p>Bonjour,</p>
<p>Nouvel objectif fixé pour {gymnast} : {educative} ({learning_step}) pour le {date} au plus tard.</p><br />
<p>Excellente journée</p><p>Jarvis</p>""",
<p>Nouvel objectif fixé pour {gymnast} : {educative} ({learning_step}) pour le {date} au plus tard.</p>
<br />
<p>Excellente journée</p>
<p>Jarvis</p>""",
)
return HttpResponseRedirect(
@ -1390,8 +1394,9 @@ def intensity_create_or_update(request, intensity_id=None, gymnast_id=None):
receiver,
fail_silently=False,
html_message=f"""<p>Bonjour,</p>
<p>{gymnast} a encodé une nouvelle intensité (pour le {date.strftime('%d %B %Y')}) : {number_of_passes} passages en {time} min (diff : {difficulty} | # skills : {quantity_of_skill}).</p><br />
<p>Excellente journée</p><p>Jarvis</p>""",
<p>{gymnast} a encodé une nouvelle intensité (pour le {date.strftime('%d %B %Y')}) : {number_of_passes} passages en {time}min (diff : {difficulty} | # skills : {quantity_of_skill}).</p><br />
<p>Excellente journée</p>
<p>Jarvis</p>""",
)
return HttpResponseRedirect(
@ -1462,7 +1467,8 @@ def season_information_create_or_update(
fail_silently=False,
html_message=f"""<p>Bonjour,</p>
<p>Une nouvelle information de saison enregistrée pour {gymnast}.</p><br />
<p>Excellente journée</p><p>Jarvis</p>""",
<p>Excellente journée</p>
<p>Jarvis</p>""",
)
return HttpResponseRedirect(

View File

@ -23,7 +23,7 @@
</div>
</div>
<div class="card-body">
<div class="table-responsive">
<div class="table-responsive pb-0">
{% if event_list %}
<table class="table tablesorter table-striped" data-sort="table" id="event_table">
<thead>

View File

@ -21,5 +21,6 @@ event_urlpatterns = [
),
path(r"<int:event_id>/", views.event_detail, name="event_details"),
path(r"calendar/", views.calendar, name="calendar"),
path(r"next/", views.next_event_listing, name="next_event_list"),
path(r"", views.event_listing, name="event_list"),
]

View File

@ -3,7 +3,7 @@ from django.http import HttpResponseRedirect, HttpResponse, JsonResponse
from django.shortcuts import render, get_object_or_404
from django.views.decorators.http import require_http_methods
from django.urls import reverse
import pendulum
from jarvis.people.models import Gymnast
from .models import (
@ -105,7 +105,7 @@ def unlink_gymnast_from_event(request):
return HttpResponse(200)
def __get_event_list(request):
def __get_event_list(request, from_date=None, to_date=None):
"""Récupère une liste d'évènement.
Par défaut, la liste est triée chronologiquement - le plus ancien étant le premier élément.
@ -118,10 +118,16 @@ def __get_event_list(request):
"""
pattern = request.GET.get("pattern", None)
event_list = Event.objects.all()
if pattern:
event_list = Event.objects.filter(name__icontains=pattern)
else:
event_list = Event.objects.all()
event_list = event_list.filter(name__icontains=pattern)
if from_date:
event_list = event_list.filter(date_end__gte=from_date)
if to_date:
event_list = event_list.filter(date_begin__lte=to_date)
return event_list.order_by("date_begin")
@ -135,6 +141,19 @@ def calendar(request):
return render(request, "events/grid.html", context)
@login_required
@require_http_methods(["GET"])
def next_event_listing(request):
"""
Récupère la liste de tous évènements suivant un pattern si celui-ci est
définit.
"""
today = pendulum.today()
event_list = __get_event_list(request, from_date=today)
context = {"event_list": event_list}
return render(request, "events/list.html", context)
@login_required
@require_http_methods(["GET"])
def event_listing(request):