Ultron/followup/views.py

57 lines
1.8 KiB
Python
Raw Normal View History

from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.views.decorators.http import require_http_methods
from django.http import HttpResponse, HttpResponseRedirect
2021-11-02 14:05:32 +01:00
from jumpers.models import Jumper
from .models import Chrono
from .forms import ChronoForm
@login_required
# @require_http_methods(["GET"])
def chrono_listing(request):
""" Récupère la liste des chronos """
chrono_list = Chrono.objects.all()
context = {'chrono_list': chrono_list}
return render(request, "chronos/list.html", context)
@login_required
@require_http_methods(["GET", "POST"])
def chrono_create_or_update(request, chronoid=None, jumperid=None):
""" Création ou modification d'un chrono.
"""
if chronoid:
chrono = get_object_or_404(Chrono, pk=chronoid)
data = {
"jumper": chrono.jumper.id,
"jumper_related": str(chrono.jumper),
}
else:
chrono = None
data = None
if request.method == "POST":
form = ChronoForm(request.POST, instance=chrono)
if form.is_valid():
form.save()
if chronoid is not None:
return HttpResponseRedirect("/chrono/" + str(chronoid) + "/")
elif jumperid is not None:
return HttpResponseRedirect(
"/jumper/" + str(jumperid)
)
else:
return HttpResponseRedirect("/chrono/")
else:
if data is None and jumperid is not None:
jumper = get_object_or_404(Jumper, pk=jumperid)
data = {"jumper": jumperid, "jumper_related": jumper}
form = ChronoForm(instance=chrono, initial=data)
context = {"form": form, "chronoid": chronoid}
return render(request, "chronos/create.html", context)