63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
from django.http import HttpResponse
|
|
from django.template import loader
|
|
from colloscope.models import *
|
|
from colloscope.table import table_colloscope
|
|
from colloscope.pdfexport import main # /!\ temporaire
|
|
|
|
|
|
def handler404(request):
|
|
template = loader.get_template("404.html")
|
|
response.status_code = 404
|
|
context = {}
|
|
return HttpResponse(template.render(context, response))
|
|
|
|
|
|
def colloscope(request):
|
|
periode_str = request.GET.get("periode", "")
|
|
if periode_str=="":
|
|
periode = Periode.objects.get(id=3)
|
|
else:
|
|
try:
|
|
periode = Periode.objects.get(id=int(periode_str))
|
|
except Periode.DoesNotExist:
|
|
template = loader.get_template("404.html")
|
|
context = {}
|
|
response = HttpResponse(template.render(context, request))
|
|
response.status_code = 404
|
|
return response
|
|
|
|
creneaux = Creneau.objects.filter(periode=periode, est_colle=True)
|
|
semaines = periode.range_semaines()
|
|
rotations = [ (c, []) for c in creneaux ]
|
|
for c, l in rotations:
|
|
for sem in semaines:
|
|
rot = Rotation.objects.filter(creneau=c, semaine=sem)
|
|
exists = rot.exists()
|
|
|
|
if exists:
|
|
r = rot.first()
|
|
est_modifiee = r.est_modifiee()
|
|
groupes = (g.libelle for g in r.groupes.all())
|
|
else:
|
|
r = est_modifiee = groupes = None
|
|
|
|
l.append((sem, exists, r, est_modifiee, groupes))
|
|
|
|
template = loader.get_template("colloscope.html")
|
|
|
|
context = {
|
|
"periode": periode,
|
|
"lundis": [periode.classe.date_debut_sem(n) for n in semaines ],
|
|
"jours" : ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"],
|
|
"rotations" : rotations
|
|
}
|
|
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
def export(request):
|
|
return HttpResponse(bytes(main().output()), content_type="application/pdf")
|
|
|
|
def data_dump(request):
|
|
template = loader.get_template("data_dump.html")
|
|
return HttpResponse(template.render())
|