from datetime import timedelta 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)) def choix_profil(request): template = loader.get_template("choix_profil.html") utilisateur = Utilisateur.objects.get(id=1) context = { "user": utilisateur, } return HttpResponse(template.render(context)) 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: lundi = periode.classe.date_debut_sem(sem) rot = Rotation.objects.filter(creneau=c, date__gte=lundi, date__lt=lundi+timedelta(weeks=1)) 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)) rotations_par_groupes = [ ( groupe, groupe.get_colles_par_sem() ) for groupe in Groupe.objects.filter(periode=periode, critere__libelle="colle") ] template = loader.get_template("colloscope.html") context = { "periode": periode, "semaines": semaines, "lundis": [periode.classe.date_debut_sem(n) for n in semaines], "jours" : ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], "rotations" : rotations, "rotations_par_groupes" : rotations_par_groupes, } 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())