Correction de bug sur l'algorithme de recherche de salles libres.

Affichage de la date choisie sur la page des salles libres.
This commit is contained in:
Antoine Waehren 2022-05-13 16:27:21 +02:00
parent 1d9cc59404
commit 6dc44168fe
3 changed files with 16 additions and 13 deletions

22
app.py
View File

@ -24,8 +24,8 @@ from flask import request
import date_tools
import rooms_get as ro
# Constantes
MAX_DEPT = 5
# Constantes :
MAX_DEPT = 5 # Le maximum de départements qu'il est possible de sélectionner
app = Flask(__name__)
@ -90,33 +90,32 @@ def free_rooms() :
# Récupération des ID des départements depuis le formulaire :
dident_list = request.args.getlist("dept")
if len(dident_list)>MAX_DEPT:
return render_template("error.html", error="Trop de départements sélectionnés ! ( max : "+str(MAX_DEPT)+" )")
return render_template("error.html", error="Trop de départements sélectionnés ! Vous pouvez en sélectionner "+str(MAX_DEPT)+" au maximum.")
# Récupération de l'éventuelle date personnalisée (depuis la page de sélection de date :
date_uf = request.args.get("date")
if date_uf == None :
print("hey")
date_uf = [""]
else :
date_uf = date_uf.split("-")
time_uf = request.args.get("time")
if time_uf == None :
print("hey")
time_uf = [""]
else :
time_uf = time_uf.split(":")
date = dti.datetime.now()
print(date_uf, time_uf)
date_str = "" # Date affichée sur la page (si personnalisée)
if date_uf != [""] :
date = date.replace(year = int(date_uf[0]), month = int(date_uf[1]), day = int(date_uf[2]))
date_str += date_uf[2] + "/" + date_uf[1] + "/" + date_uf[0]
if time_uf != [""] :
date = date.replace(hour = int(time_uf[0]), minute = int(time_uf[1]))
if date_uf != [""] :
date = date.replace(year = int(date_uf[0]), month = int(date_uf[1]), day = int(date_uf[2]))
print(date)
date_str += ", à " + time_uf[0] + ":" + time_uf[1]
# Récupération de la liste des départements :
@ -153,7 +152,7 @@ def free_rooms() :
"end":date_tools.hour_disp(r.end),
"rtime":remain_time_str}
context = {"free_rooms":free_rooms, "frooms_disp":frooms_disp, "depts_str":depts_str, "dident_list":dident_list}
context = {"free_rooms":free_rooms, "frooms_disp":frooms_disp, "depts_str":depts_str, "dident_list":dident_list, "date_str":date_str}
url_for("static", filename="style.css")
return render_template("free-rooms.html", **context)
@ -179,6 +178,7 @@ def date_select() :
return render_template("date-select.html", **context)
@app.errorhandler(404)
def error(e):
"""

View File

@ -285,11 +285,11 @@ def getrooms(datet, depts, ignore_list) :
for r in total_rooms :
if r.name == roomname :
if datestart.timestamp() < r.end.timestamp() :
if datestart.timestamp() == r.start.timestamp() :
if not(r.is_free) and (datestart.timestamp() == r.start.timestamp()) :
start = dateend
end = r.end
else :
start = r.end
start = r.start
end = datestart
# Réglage du fuseau horaire :

View File

@ -11,6 +11,9 @@
<main>
Départements sélectionnés :
<b>{{ depts_str }}</b>
{% if date_str != "" : %}
<b>Le {{ date_str }}</b>
{% endif %}
<form class="flex" action="/app/date-select" method="get">
{% for d in dident_list : %}
<span style="display: none;"><input type="text" name="dept" value="{{ d }}"/></span>