Ajout d'une vérification de la date et de l'heure entrées.
This commit is contained in:
parent
5330b27e5d
commit
a702385c21
13
app.py
13
app.py
@ -16,6 +16,7 @@ import datetime as dti
|
||||
import pytz
|
||||
import json
|
||||
import os
|
||||
import traceback
|
||||
|
||||
from flask import Flask
|
||||
from flask import render_template
|
||||
@ -173,6 +174,9 @@ def free_rooms() :
|
||||
else :
|
||||
date_uf = date_uf.split("-")
|
||||
|
||||
if date_uf != [""] and not (date_tools.check_date(date_uf)) :
|
||||
return render_template("error.html", error="Date incorrecte !")
|
||||
|
||||
time_uf = str(request.args.get("time"))
|
||||
time_uf_sav = time_uf
|
||||
if time_uf == "None" :
|
||||
@ -180,6 +184,9 @@ def free_rooms() :
|
||||
else :
|
||||
time_uf = time_uf.split(":")
|
||||
|
||||
if time_uf != [""] and not (date_tools.check_time(time_uf)) :
|
||||
return render_template("error.html", error="Heure incorrecte !")
|
||||
|
||||
|
||||
date = dti.datetime.now()
|
||||
|
||||
@ -228,7 +235,11 @@ def free_rooms() :
|
||||
|
||||
ignore_list = ["salle non définie", "salle en Distanciel"]
|
||||
|
||||
free_rooms = ro.getrooms(date, depts, ignore_list)
|
||||
try :
|
||||
free_rooms = ro.getrooms(date, depts, ignore_list)
|
||||
except ValueError as err :
|
||||
return render_template("error.html", error="Le serveur Unistra a rencontré une erreur ! Veuillez réessayer plus tard.")
|
||||
#return render_template("error.html", error="Le serveur Unistra a rencontré une erreur ! Détails de l'erreur : " + str(''.join(traceback.format_exception(None, err, err.__traceback__))))
|
||||
|
||||
# Création d'un dictionnaire avec les infos des salles :
|
||||
frooms_disp = dict() # Mise en forme des infos pour la page Web
|
||||
|
@ -175,4 +175,80 @@ def remain_time(date, rdate) :
|
||||
if deltasec[1] > 0 :
|
||||
remain_time_str += " " + str(deltasec[1]) + " minutes"
|
||||
|
||||
return remain_time_str
|
||||
return remain_time_str
|
||||
|
||||
def check_date(date) :
|
||||
"""
|
||||
Vérifie que la date est correcte.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
date : list
|
||||
Date à vérifier.
|
||||
|
||||
Returns
|
||||
-------
|
||||
bool
|
||||
'True' si la date est correcte, 'False' sinon.
|
||||
"""
|
||||
year = 1
|
||||
month = 1
|
||||
day = 1
|
||||
|
||||
if len(date) != 3 :
|
||||
return False
|
||||
|
||||
try :
|
||||
year = int(date[0])
|
||||
month = int(date[1])
|
||||
day = int(date[2])
|
||||
except ValueError :
|
||||
return False
|
||||
|
||||
if year < 2 or month < 1 or day < 1 :
|
||||
return False
|
||||
|
||||
if month > 12 :
|
||||
return False
|
||||
|
||||
if day > month_days(month, year) :
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def check_time(time) :
|
||||
"""
|
||||
Vérifie que l'heure est correcte.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
time : list
|
||||
Heure à vérifier.
|
||||
|
||||
Returns
|
||||
-------
|
||||
bool
|
||||
'True' si l'heure est correcte, 'False' sinon.
|
||||
"""
|
||||
hour = 0
|
||||
minute = 0
|
||||
|
||||
if len(time) != 2 :
|
||||
return False
|
||||
|
||||
try :
|
||||
hour = int(time[0])
|
||||
minute = int(time[1])
|
||||
except ValueError :
|
||||
return False
|
||||
|
||||
if hour < 0 or minute < 0 :
|
||||
return False
|
||||
|
||||
if hour > 23 :
|
||||
return False
|
||||
|
||||
if minute > 59 :
|
||||
return False
|
||||
|
||||
return True
|
@ -135,7 +135,7 @@ def sched_get(date, link, enddate = None, nocache = False) :
|
||||
finallink = finallink.replace("$DAY2$", day1)
|
||||
finallink = finallink.replace("$MONTH2$", month1)
|
||||
finallink = finallink.replace("$YEAR2$", year1)
|
||||
|
||||
|
||||
if nocache:
|
||||
return requests.get(finallink).content
|
||||
else :
|
||||
|
Loading…
x
Reference in New Issue
Block a user