Ajout du choix du départements (possibilité d'en choisir plusieurs) (Flask uniquement).
Ajout d'un identifiant pour les départements.
This commit is contained in:
parent
1c9b10a54e
commit
01d3aee55d
37
app.py
37
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)
|
||||
return render_template("free-rooms.html", **context)
|
||||
|
@ -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
|
||||
self.rooms = rooms
|
||||
|
@ -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 :
|
||||
|
@ -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) {
|
||||
}
|
||||
}
|
||||
|
@ -9,14 +9,17 @@
|
||||
<header>UniSquat</header>
|
||||
<main>
|
||||
Sélectionnez des départements dans la liste :
|
||||
<form action="/free-rooms" method="post">
|
||||
<form action="/free-rooms" method="get">
|
||||
<input type="submit" value="Valider">
|
||||
<br>
|
||||
{% for d in dept_list : %}
|
||||
<input type="radio" id="{{ d }}" name="dept" value="{{ d }}"><br>
|
||||
<div>
|
||||
<input type="checkbox" id="{{ d.ident }}" name="dept" value="{{ d.ident }}">
|
||||
<label for="{{ d.ident }}">{{ d.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</form>
|
||||
</main>
|
||||
<footer></footer>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user