tableau de bord
This commit is contained in:
parent
a531ae0f21
commit
468b77bb73
|
@ -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 %}
|
|
@ -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 %}
|
|
@ -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"),
|
||||
]
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -37,7 +37,7 @@ header .bandeau button:active {
|
|||
}
|
||||
|
||||
main {
|
||||
margin: auto;
|
||||
margin: 20px auto;
|
||||
width: clamp(350px, 60%, 1200px);
|
||||
background-color: white;
|
||||
padding: 10px;
|
||||
|
|
Loading…
Reference in New Issue