diff --git a/colloscope/templates/dashboard.html b/colloscope/templates/dashboard.html
new file mode 100644
index 0000000..1ad71dd
--- /dev/null
+++ b/colloscope/templates/dashboard.html
@@ -0,0 +1,26 @@
+{% extends "base.html" %}
+
+{% block title %}Tableau de bord{% endblock title %}
+
+{% block main %}
+
+
Tableau de bord
+
+
+Bienvenue {{ etudiant }}. Votre lycée est {{ periode.classe.lycee.libelle }}, et votre classe est {{ periode.classe.libelle }}.
+
+
+Votre groupe de colle est {{ groupe }}.
+
+
+{% for n, lundi, colles in rotations %}
+ - Semaine {{n}} ({{lundi}})
+
+ {% for colle in colles %}
+ - {{colle}}
+ {% endfor %}
+
+{% endfor %}
+
+
+{% endblock main %}
diff --git a/colloscope/templates/colloscope.html b/colloscope/templates/table.html
similarity index 80%
rename from colloscope/templates/colloscope.html
rename to colloscope/templates/table.html
index 5ff4976..87a3458 100644
--- a/colloscope/templates/colloscope.html
+++ b/colloscope/templates/table.html
@@ -80,26 +80,4 @@
-
-
- Par groupes
-
- {% for groupe, rot in rotations_par_groupes %}
-
- Groupe {{ groupe }}
-
-
- {% for n, lundi, colles in rot %}
- - Semaine {{n}} ({{lundi}})
-
- {% for c in colles %}
- - {{c}}
- {% endfor %}
-
-
- {% endfor %}
-
-
- {% endfor %}
-
{% endblock main %}
diff --git a/colloscope/urls.py b/colloscope/urls.py
index 70df17a..72ec4e2 100644
--- a/colloscope/urls.py
+++ b/colloscope/urls.py
@@ -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"),
]
diff --git a/colloscope/views.py b/colloscope/views.py
index 05b0a29..58c5d02 100644
--- a/colloscope/views.py
+++ b/colloscope/views.py
@@ -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))
diff --git a/static/main.css b/static/main.css
index f275b84..dba5bf7 100644
--- a/static/main.css
+++ b/static/main.css
@@ -37,7 +37,7 @@ header .bandeau button:active {
}
main {
- margin: auto;
+ margin: 20px auto;
width: clamp(350px, 60%, 1200px);
background-color: white;
padding: 10px;