2021-11-02 14:05:32 +01:00
|
|
|
from django.shortcuts import render, get_object_or_404
|
|
|
|
from django.http import HttpResponse
|
2021-11-03 06:19:59 +01:00
|
|
|
from django.contrib.auth.decorators import login_required
|
2021-11-02 14:05:32 +01:00
|
|
|
from django.views.decorators.http import require_http_methods
|
2021-11-11 16:03:33 +01:00
|
|
|
from django.db.models import Q
|
2021-11-02 14:05:32 +01:00
|
|
|
|
|
|
|
from .models import Club, Jumper
|
|
|
|
from followup.models import Chrono, LearnedSkill
|
|
|
|
|
2021-11-11 16:03:33 +01:00
|
|
|
import simplejson
|
|
|
|
|
2021-11-02 14:05:32 +01:00
|
|
|
|
2021-11-03 06:19:59 +01:00
|
|
|
@login_required
|
2021-11-02 14:05:32 +01:00
|
|
|
@require_http_methods(["GET"])
|
|
|
|
def club_listing(request):
|
2021-11-03 06:19:59 +01:00
|
|
|
"""Liste tous les clubs connus
|
2021-11-02 14:05:32 +01:00
|
|
|
"""
|
|
|
|
club_list = Club.objects.all()
|
|
|
|
context = {"club_list": club_list}
|
|
|
|
return render(request, "clubs/list.html", context)
|
|
|
|
|
|
|
|
|
2021-11-11 16:03:33 +01:00
|
|
|
@login_required
|
|
|
|
@require_http_methods(["GET"])
|
|
|
|
def jumper_lookup(request):
|
|
|
|
"""
|
|
|
|
Récupère la liste des gymnastes à la volée suivant des caractères de
|
|
|
|
recherche entrés. (min 3 caractères)
|
|
|
|
"""
|
|
|
|
|
|
|
|
results = []
|
|
|
|
pattern = request.GET.get("pattern", None)
|
|
|
|
|
|
|
|
# Ignore queries shorter than length 3
|
|
|
|
if pattern is not None and len(pattern) > 3:
|
|
|
|
model_results = Jumper.objects.filter(
|
|
|
|
Q(last_name__icontains=pattern) | Q(first_name__icontains=pattern)
|
|
|
|
)
|
|
|
|
results = [{"ID": x.id, "Name": str(x)} for x in model_results]
|
|
|
|
|
|
|
|
json = simplejson.dumps(results)
|
|
|
|
return HttpResponse(json, content_type="application/json")
|
|
|
|
|
|
|
|
|
2021-11-03 06:19:59 +01:00
|
|
|
@login_required
|
2021-11-02 14:05:32 +01:00
|
|
|
@require_http_methods(["GET"])
|
|
|
|
def jumper_listing(request):
|
2021-11-03 06:19:59 +01:00
|
|
|
"""Liste tous les gymnasts connus
|
2021-11-02 14:05:32 +01:00
|
|
|
"""
|
|
|
|
jumper_list = Jumper.objects.all()
|
2021-11-11 15:21:48 +01:00
|
|
|
context = {'jumper_list': jumper_list}
|
2021-11-02 14:05:32 +01:00
|
|
|
return render(request, "jumpers/list.html", context)
|
|
|
|
|
|
|
|
|
2021-11-03 06:19:59 +01:00
|
|
|
@login_required
|
2021-11-02 14:05:32 +01:00
|
|
|
@require_http_methods(["GET"])
|
|
|
|
def jumper_details(request, jumperid):
|
2021-11-03 06:19:59 +01:00
|
|
|
"""Récupère toutes les informations d'un gymnaste.
|
2021-11-02 14:05:32 +01:00
|
|
|
"""
|
|
|
|
jumper = get_object_or_404(Jumper, pk=jumperid)
|
|
|
|
learnedskills_list = LearnedSkill.objects.filter(jumper=jumperid).order_by('-date')[:8]
|
|
|
|
chronos_list = Chrono.objects.filter(jumper=jumperid).order_by('-date')[:8]
|
|
|
|
straightjump_score = Chrono.objects.filter(jumper=jumperid).filter(type=0).order_by('-date')
|
|
|
|
routine_score = Chrono.objects.filter(jumper=jumperid).filter(type=1).order_by('-date')
|
|
|
|
context = {
|
|
|
|
'jumper': jumper,
|
|
|
|
'learnedskills_list': learnedskills_list,
|
|
|
|
'chronos_list': chronos_list,
|
|
|
|
'straightjump_score': straightjump_score,
|
|
|
|
'routine_score': routine_score
|
|
|
|
}
|
|
|
|
|
|
|
|
return render(request, "jumpers/details.html", context)
|