diff --git a/app.py b/app.py
index 6bab900..a53a69a 100644
--- a/app.py
+++ b/app.py
@@ -87,23 +87,36 @@ def free_rooms() :
# Récupération des départements choisis à partir des données du formulaire :
i = 0
depts = list()
+ depts_str = "" # Noms des départements pour l'affichage
for d in dept_list :
if i < len(dident_list) and d.ident == int(dident_list[i]) :
depts.append(d)
+ depts_str += d.name
+ if (i + 1) < len(dident_list) :
+ depts_str += ", "
i += 1
- hdelay = 1 #TODO : décalage horaire (pb de fuseau ?)
-
- if time.localtime().tm_isdst != 0 :
- hdelay = 2
-
ignore_list = ["salle non définie", "salle en Distanciel"]
- date = dti.datetime(2022, 5, 5, 10, 30) #TODO : à changer
+ date = dti.datetime.now()
- available_rooms = ro.getrooms(date, depts, ignore_list)
+ free_rooms = ro.getrooms(date, depts, ignore_list)
- context = {"available_rooms":available_rooms, "hdelay":hdelay}
+ frooms_disp = dict() # Mise en forme des infos pour la page Web
+
+ i = 0
+ for r in free_rooms :
+ remain_time_str = ""
+ if r.is_free :
+ remain_time_str = date_tools.remain_time(date, r.end)
+ else :
+ remain_time_str = date_tools.remain_time(date, r.start)
+
+ frooms_disp[r.name] = {"start":date_tools.hour_disp(r.start),
+ "end":date_tools.hour_disp(r.end),
+ "rtime":remain_time_str}
+
+ context = {"free_rooms":free_rooms, "frooms_disp":frooms_disp, "depts_str":depts_str}
url_for("static", filename="style.css")
return render_template("free-rooms.html", **context)
\ No newline at end of file
diff --git a/date_tools.py b/date_tools.py
index 629f3d0..c56528b 100644
--- a/date_tools.py
+++ b/date_tools.py
@@ -65,6 +65,7 @@ def bissextile(year) :
return (year % 4 == 0 and year % 100 != 0) or year % 400 == 0
+
def month_days(month, year) :
"""
Renvoie le nombre de jours dans le mois 'month'.
@@ -125,3 +126,58 @@ def date_input() :
minute = int(input("Entrer les minutes.\n> "))
return datetime.datetime(year, month, day, hour, minute)
+
+
+def hour_disp(time) :
+ """
+ Convertit une heure au format datetime
+ en une chaîne de caractères.
+
+ Parameters
+ ----------
+ time : datetime.datetime
+ Heure au format datetime.
+
+ Returns
+ -------
+ time_str : str
+ Heure en chaîne de caractères.
+ """
+
+ time_str = str(time.hour) + ":"
+
+ if time.minute < 10 : # Ajout du zéro au début du nombre de minutes
+ time_str += "0" + str(time.minute)
+ else :
+ time_str += str(time.minute)
+
+ return time_str
+
+
+def remain_time(date, rdate) :
+ """
+ Détermine le temps restant avant
+ la fin/le début de disponibilité d'une salle.
+
+ Parameters
+ ----------
+ date : datetime.datetime
+ Date choisie au format datetime.
+ rdate : datetime.datetime
+ Date de la salle au format datetime.
+
+ Returns
+ -------
+ remain_time_str : str
+ Temps restant.
+ """
+
+ deltasec = rdate.timestamp() - date.timestamp()
+ remain_time_str = str(int(deltasec / 60 + 0.5)) + " minutes"
+ if deltasec / 60 + 0.5 >= 60 : # Conversion en heures:minutes si les minutes dépassent 60
+ deltasec = minutes_convert(deltasec / 60 + 0.5)
+ remain_time_str = str(deltasec[0]) + " heures"
+ if deltasec[1] > 0 :
+ remain_time_str += " " + str(deltasec[1]) + " minutes"
+
+ return remain_time_str
\ No newline at end of file
diff --git a/main_cli.py b/main_cli.py
index 8ab9623..25c6b1a 100644
--- a/main_cli.py
+++ b/main_cli.py
@@ -95,13 +95,7 @@ def main() :
for room in available_rooms :
if room.name in favorites or len(favorites) == 0 : # TODO : Changer le comportement de ce 'if' : il faudrait afficher toutes les salles, mais d'abord les favorites
if room.is_free :
- deltasec = room.end.timestamp() - date.timestamp()
- remain_time_str = str(int(deltasec / 60 + 0.5)) + " minutes"
- if deltasec / 60 + 0.5 >= 60 : # Conversion en heures:minutes si les minutes dépassent 60
- deltasec = date_tools.minutes_convert(deltasec / 60 + 0.5)
- remain_time_str = str(deltasec[0]) + " heures"
- if deltasec[1] > 0 :
- remain_time_str += " " + str(deltasec[1]) + " minutes"
+ remain_time_str = date_tools.remain_time(date, room.end)
if room.end.hour == 23 and room.end.minute == 59 and room.end.second == 59 :
print(" - " + room.name)
@@ -113,13 +107,7 @@ def main() :
for room in available_rooms :
if room.name in favorites or len(favorites) == 0 :
if not room.is_free :
- deltasec = room.start.timestamp() - date.timestamp()
- remain_time_str = str(int(deltasec / 60 + 0.5)) + " minutes"
- if deltasec / 60 + 0.5 >= 60 : # Conversion en heures:minutes si les minutes dépassent 60
- deltasec = date_tools.minutes_convert(deltasec / 60 + 0.5)
- remain_time_str = str(deltasec[0]) + " heures"
- if deltasec[1] > 0 :
- remain_time_str += " " + str(deltasec[1]) + " minutes"
+ remain_time_str = date_tools.remain_time(date, room.start)
if room.end.hour == 23 and room.end.minute == 59 and room.end.second == 59 :
print(" - " + room.name + " | Libre à " + str(room.start.hour) + ":" + str(room.start.minute) + " (dans " + remain_time_str + ")") # TODO : Obligé d'ajouter 1h (problème de fuseau horaire ?)
diff --git a/prototypes/interface/Schéma interface (Antoine).odg b/prototypes/interface/Schéma interface (Antoine).odg
deleted file mode 100644
index 886202e..0000000
Binary files a/prototypes/interface/Schéma interface (Antoine).odg and /dev/null differ
diff --git a/prototypes/interface/Schéma interface (Antoine).pdf b/prototypes/interface/Schéma interface (Antoine).pdf
deleted file mode 100644
index 854f18a..0000000
Binary files a/prototypes/interface/Schéma interface (Antoine).pdf and /dev/null differ
diff --git a/prototypes/interface/Schéma interface.odg b/prototypes/interface/Schéma interface.odg
new file mode 100644
index 0000000..e6da34e
Binary files /dev/null and b/prototypes/interface/Schéma interface.odg differ
diff --git a/prototypes/interface/Schéma interface.pdf b/prototypes/interface/Schéma interface.pdf
new file mode 100644
index 0000000..de058ab
Binary files /dev/null and b/prototypes/interface/Schéma interface.pdf differ
diff --git a/templates/base.html b/templates/base.html
index 3abdbad..ca9ab05 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -26,8 +26,8 @@
}
main {
- /*display: flex;
- flex-direction: row;*/
+ display: flex;
+ flex-direction: column;
line-height: 1.7;
}
diff --git a/templates/free-rooms.html b/templates/free-rooms.html
index ff70826..fe59176 100644
--- a/templates/free-rooms.html
+++ b/templates/free-rooms.html
@@ -9,14 +9,18 @@
{% include "base.html" %}
- Les salles suivantes sont disponibles actuellement :
+ Départements sélectionnés :
+ {{ depts_str }}
+
+
+ Disponibles maintenant
- {% for room in available_rooms : %}
+ {% for room in free_rooms : %}
{% if room.is_free : %}
- {{ room.name }}
{% if not(room.end.hour == 23 and room.end.minute == 59 and room.end.second == 59) : %}
-
Occupée à : {{ room.end.hour + hdelay }}:{{ room.end.minute }}
+
Jusqu'à {{ frooms_disp[room.name]["end"] }} (dans {{ frooms_disp[room.name]["rtime"] }})
{% endif %}
{% endif %}
@@ -24,16 +28,16 @@
- Les salles suivantes seront disponibles prochainement :
+ Disponibles prochainement
- {% for room in available_rooms : %}
+ {% for room in free_rooms : %}
{% if not room.is_free : %}
- {{ room.name }}
{% if room.end.hour == 23 and room.end.minute == 59 and room.end.second == 59 : %}
-
Libre à : {{ room.start.hour + hdelay }}:{{ room.start.minute + hdelay }}
+
À {{ frooms_disp[room.name]["start"] }} (dans {{ frooms_disp[room.name]["rtime"] }})
{% else %}
-
Libre de {{ room.start.hour + hdelay }}:{{ room.start.minute + hdelay }} à {{ room.end.hour + hdelay }}:{{ room.end.minute + hdelay }}
+
De {{ frooms_disp[room.name]["start"] }} à {{ frooms_disp[room.name]["end"] }} (dans {{ frooms_disp[room.name]["rtime"] }})
{% endif %}
{% endif %}