tableau de bord

This commit is contained in:
Valentin Moguérou 2024-04-19 23:02:03 +02:00
parent a531ae0f21
commit 468b77bb73
5 changed files with 67 additions and 40 deletions

View File

@ -0,0 +1,26 @@
{% extends "base.html" %}
{% block title %}Tableau de bord{% endblock title %}
{% block main %}
<h1>Tableau de bord</h1>
<p>
Bienvenue {{ etudiant }}. Votre lycée est {{ periode.classe.lycee.libelle }}, et votre classe est {{ periode.classe.libelle }}.
</p>
<p>Votre groupe de colle est {{ groupe }}.</p>
<ul>
{% for n, lundi, colles in rotations %}
<li>Semaine {{n}} ({{lundi}})</li>
<ul>
{% for colle in colles %}
<li>{{colle}}</li>
{% endfor %}
</ul>
{% endfor %}
</ul>
{% endblock main %}

View File

@ -80,26 +80,4 @@
</table>
</div>
<h2>Par groupes</h2>
{% for groupe, rot in rotations_par_groupes %}
<h3>Groupe {{ groupe }}</h3>
<ul>
{% for n, lundi, colles in rot %}
<li>Semaine {{n}} ({{lundi}})
<ul>
{% for c in colles %}
<li>{{c}}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
{% endfor %}
{% endblock main %}

View File

@ -4,6 +4,7 @@ from . import views
urlpatterns = [
path("", views.home_redirect, name="colloscope.home"),
path("table.html", views.colloscope, name="colloscope.table"),
path("dashboard.html", views.dashboard, name="colloscope.dashboard"),
path("export.pdf", views.export, name="colloscope.export"),
path("choix_profil", views.choix_profil, name="colloscope.choix_profil"),
]

View File

@ -51,6 +51,40 @@ def choix_profil(request):
return HttpResponse(template.render(context))
@login_required
def dashboard(request):
user = request.user
session = request.session
match session.get("profil"):
case "etudiant":
profil = Profil.objects \
.select_related("etudiant__classe") \
.prefetch_related("etudiant__classe__periode_set") \
.get(utilisateur=user)
etudiant = profil.etudiant
case "colleur":
return HttpResponse("pas (encore) supporté")
case _:
return redirect("/colloscope/choix_profil")
periode = etudiant.classe.periode_set.order_by("-debut").first()
groupe = etudiant.groupe_de_colle(periode)
rotations = groupe.get_colles_par_sem()
template = loader.get_template("dashboard.html")
context = {
"etudiant": etudiant,
"periode": periode,
"groupe": groupe,
"rotations" : rotations,
}
return HttpResponse(template.render(context, request))
@login_required
def colloscope(request):
user = request.user
@ -68,23 +102,18 @@ def colloscope(request):
case _:
return redirect("/colloscope/choix_profil")
"""
periode_str = request.GET.get("periode", "")
if periode_str=="":
periode = Periode.objects.get(id=3)
periode_str = request.GET.get("periode")
if periode_str is None:
periode = etudiant.classe.periode_set.order_by("-debut").first()
else:
try:
periode = Periode.objects.get(id=int(periode_str))
periode = Periode.objects.get(id=int(periode_str), classe=etudiant.classe)
except Periode.DoesNotExist:
template = loader.get_template("404.html")
context = {}
response = HttpResponse(template.render(context, request))
response.status_code = 404
return response
"""
periode = etudiant.classe.periode_set.order_by("-debut").first()
creneaux = Creneau.objects \
.filter(periode=periode, est_colle=True) \
@ -108,13 +137,7 @@ def colloscope(request):
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")
template = loader.get_template("table.html")
context = {
"periode": periode,
@ -122,7 +145,6 @@ def colloscope(request):
"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))

View File

@ -37,7 +37,7 @@ header .bandeau button:active {
}
main {
margin: auto;
margin: 20px auto;
width: clamp(350px, 60%, 1200px);
background-color: white;
padding: 10px;