2022-05-10 20:55:19 +02:00
|
|
|
################
|
|
|
|
### 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)
|
2022-05-10 22:35:16 +02:00
|
|
|
|
2022-05-10 20:55:19 +02:00
|
|
|
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
|
|
|
|
"""
|
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
# 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")
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
# Récupération de la liste des départements :
|
|
|
|
dept_filen = "data/dept_list.txt"
|
|
|
|
dept_list = ro.get_depts(dept_filen)
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
# 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
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
hdelay = 1 #TODO : décalage horaire (pb de fuseau ?)
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
if time.localtime().tm_isdst != 0 :
|
|
|
|
hdelay = 2
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
ignore_list = ["salle non définie", "salle en Distanciel"]
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
#dept = dept_list[0] #TODO : proposer d'autres départements
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
date = dti.datetime(2022, 5, 5, 10, 30)
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
available_rooms = ro.getrooms(date, depts, ignore_list)
|
2022-05-10 20:55:19 +02:00
|
|
|
|
2022-05-10 22:35:16 +02:00
|
|
|
context = {"available_rooms":available_rooms, "hdelay":hdelay}
|
2022-05-10 20:55:19 +02:00
|
|
|
|
|
|
|
url_for("static", filename="style.css")
|
2022-05-10 22:35:16 +02:00
|
|
|
return render_template("free-rooms.html", **context)
|