From 01d3aee55da6001fb2a7f9456c7b767618c93590 Mon Sep 17 00:00:00 2001 From: Antoine Date: Tue, 10 May 2022 22:35:16 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20du=20choix=20du=20d=C3=A9partements=20(?= =?UTF-8?q?possibilit=C3=A9=20d'en=20choisir=20plusieurs)=20(Flask=20uniqu?= =?UTF-8?q?ement).=20Ajout=20d'un=20identifiant=20pour=20les=20d=C3=A9part?= =?UTF-8?q?ements.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 37 +++++++++++++++++++++++++------------ objects.py | 8 ++++++-- rooms_get.py | 9 ++++++--- static/style.css | 6 +++++- templates/dept-select.html | 9 ++++++--- 5 files changed, 48 insertions(+), 21 deletions(-) diff --git a/app.py b/app.py index 8b6ab61..5699c65 100644 --- a/app.py +++ b/app.py @@ -45,6 +45,7 @@ def select_dept() : dept_filen = "data/dept_list.txt" dept_list = ro.get_depts(dept_filen) + content = {"dept_list":dept_list} url_for("static", filename="style.css") @@ -66,26 +67,38 @@ def free_rooms() : flask.render_template """ - depts = request.form["dept"] + # Récupération des ID des départements depuis le formulaire : + if request.method == "POST" : + dident_list = request.form["dept"] + else : + dident_list = request.args.getlist("dept") - print(depts) + # Récupération de la liste des départements : + dept_filen = "data/dept_list.txt" + dept_list = ro.get_depts(dept_filen) - #hdelay = 1 #TODO : décalage horaire (pb de fuseau ?) + # Récupération des départements choisis à partir des données du formulaire : + i = 0 + depts = list() + for d in dept_list : + if i < len(dident_list) and d.ident == int(dident_list[i]) : + depts.append(d) + i += 1 - #if time.localtime().tm_isdst != 0 : - #hdelay = 2 + hdelay = 1 #TODO : décalage horaire (pb de fuseau ?) - #ignore_list = ["salle non définie", "salle en Distanciel"] + if time.localtime().tm_isdst != 0 : + hdelay = 2 - ##dept = dept_list[0] #TODO : proposer d'autres départements + ignore_list = ["salle non définie", "salle en Distanciel"] - #date = dti.datetime(2022, 5, 5, 10, 30) + #dept = dept_list[0] #TODO : proposer d'autres départements - #available_rooms = ro.getrooms(date, depts, ignore_list) + date = dti.datetime(2022, 5, 5, 10, 30) - #context = {"available_rooms":available_rooms, "hdelay":hdelay} + available_rooms = ro.getrooms(date, depts, ignore_list) - context = {} + context = {"available_rooms":available_rooms, "hdelay":hdelay} url_for("static", filename="style.css") - return render_template("free-rooms.html", **context) \ No newline at end of file + return render_template("free-rooms.html", **context) diff --git a/objects.py b/objects.py index ae798bd..57da9af 100644 --- a/objects.py +++ b/objects.py @@ -57,6 +57,9 @@ class Dept : Attributes ---------- + ident : int + Identifiant du département. + name : string Nom du département. @@ -67,7 +70,8 @@ class Dept : La liste des salles de ce département """ - def __init__(self, name, link, rooms) : + def __init__(self, ident, name, link, rooms) : + self.ident = ident self.name = name self.link = link - self.rooms = rooms \ No newline at end of file + self.rooms = rooms diff --git a/rooms_get.py b/rooms_get.py index af02868..4b2345a 100644 --- a/rooms_get.py +++ b/rooms_get.py @@ -139,9 +139,12 @@ def get_depts(filename) : # dept = Dept("", "", []) dfile_content = dept_file.readlines() + + ident = 0 # Compteur pour les identifiants des départements - for i in range(len(dfile_content) - 1) : - dept_list.append(Dept(dfile_content[i], dfile_content[i + 1], [])) + for i in range(0, len(dfile_content) - 1, 2) : + dept_list.append(Dept(ident, dfile_content[i], dfile_content[i + 1], [])) + ident += 1 # for l in dfile_content : # """ @@ -250,7 +253,7 @@ def getrooms(datet, depts, ignore_list) : # Récupération des calendriers correspondants au lien du département : cals = list() # Liste des emplois du temps des départements choisis for d in depts : - result = sched_get(datet, d.link, datet.replace(month = datet.month + margintime)) + result = sched_get(datet, d.link, datet) cals.append(icalendar.Calendar.from_ical(result)) # Ajout des infos supplémentaires sur les salles (heures de début-fin de dispo, indicateur de dispo), s'il y en a : diff --git a/static/style.css b/static/style.css index 3afdb9f..6a25813 100644 --- a/static/style.css +++ b/static/style.css @@ -104,6 +104,10 @@ button, input { border-radius: 10px; } +input checkbox { + margin-bottom: 5px; +} + .done { background: var(--bg-dark); text-decoration: line-through; @@ -114,4 +118,4 @@ input { } @media screen and (max-width: 769px) { -} \ No newline at end of file +} diff --git a/templates/dept-select.html b/templates/dept-select.html index 2e6c998..df41246 100644 --- a/templates/dept-select.html +++ b/templates/dept-select.html @@ -9,14 +9,17 @@
UniSquat
Sélectionnez des départements dans la liste : -
+
{% for d in dept_list : %} -
+
+ + +
{% endfor %}
- \ No newline at end of file +