UniSquat_Python/app.py

105 lines
2.3 KiB
Python
Raw Normal View History

################
### UniSquat ###
################
"""
Indique toutes les salles disponibles dans les différents départements de
l'Université de Strasbourg.
"""
from flask import Flask
from flask import render_template
from flask import url_for
from flask import request
import rooms_get as ro
import datetime as dti
app = Flask(__name__)
# Modules :
import datetime
import time
# Fichiers locaux :
import date_tools
import rooms_get as ro
# import definitions as lib # TODO : À quoi ça sert ?
@app.route("/")
def select_dept() :
"""
Permet de sélectionner un ou plusieurs départements dans lesquels
chercher des salles libres.
Parameters
----------
None.
Returns
-------
flask.render_template
"""
dept_filen = "data/dept_list.txt"
dept_list = ro.get_depts(dept_filen)
content = {"dept_list":dept_list}
url_for("static", filename="style.css")
return render_template("dept-select.html", **content)
@app.route("/free-rooms", methods=["POST", "GET"])
def free_rooms() :
"""
Affiche les salles libres dans les départements sélectionnés
dans la page précédente.
Parameters
----------
None.
Returns
-------
flask.render_template
"""
# 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")
# Récupération de la liste des départements :
dept_filen = "data/dept_list.txt"
dept_list = ro.get_depts(dept_filen)
# 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
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"]
#dept = dept_list[0] #TODO : proposer d'autres départements
date = dti.datetime(2022, 5, 5, 10, 30)
available_rooms = ro.getrooms(date, depts, ignore_list)
context = {"available_rooms":available_rooms, "hdelay":hdelay}
url_for("static", filename="style.css")
return render_template("free-rooms.html", **context)