Filtrer par occurence minimale, ainsi que par présence de virgule dans
le nom
This commit is contained in:
parent
87e289d85a
commit
65cf7624b4
@ -25,6 +25,7 @@ import rooms_get as ro
|
||||
|
||||
# Globales
|
||||
favorites = ["C" + str(i) + " MATH" for i in range(1,12)] + ["C42-CMI"] # TODO : Ne sera pas conservé
|
||||
favorites = []
|
||||
links = [] # Liens vers les calendriers des salles des différents bâtiments de l'université
|
||||
|
||||
|
||||
|
18
rooms_get.py
18
rooms_get.py
@ -110,7 +110,7 @@ def sched_get(date, enddate = None, link = None) :
|
||||
return r.content
|
||||
|
||||
|
||||
def getrooms(datet, links=[]) :
|
||||
def getrooms(datet, links=[],min_occur=3) :
|
||||
"""
|
||||
Crée une liste de toutes les salles, avec des informations si elles sont libres ou non.
|
||||
|
||||
@ -118,6 +118,12 @@ def getrooms(datet, links=[]) :
|
||||
----------
|
||||
datet : datetime.datetime()
|
||||
Date au format datetime.
|
||||
Optionnels:
|
||||
links : list, par défaut vide
|
||||
liste des liens à consulter ( si est vide, ping l'ufr )
|
||||
min_occur : nombre, par défaut à 3
|
||||
Nombre minimum de fois qu'une salle doit être mentionnée pour être comptée
|
||||
( permet d'éviter le flood de salles qui n'existe que pour les évals )
|
||||
|
||||
Returns
|
||||
-------
|
||||
@ -134,6 +140,7 @@ def getrooms(datet, links=[]) :
|
||||
cals = [icalendar.Calendar.from_ical(sched_get(datet))]
|
||||
|
||||
total_rooms = {}
|
||||
rooms_count = {}
|
||||
# default_hour_margin = 2
|
||||
|
||||
# Création du dico de toutes les salles (récupération de l'emploi du temps de l'année entière, pour être sûr d'obtenir toutes les salles disponibles):
|
||||
@ -177,6 +184,9 @@ def getrooms(datet, links=[]) :
|
||||
end = datet.replace(hour = 23, minute = 59, second = 59) # Par défaut, l'heure de fin de la prochaine période disponibilité est aujourd'hui à 23:59
|
||||
is_free = True # Par défaut, la salle est libre
|
||||
total_rooms[roomname] = room(roomname, start, end, is_free)
|
||||
rooms_count[roomname] = 1
|
||||
else:
|
||||
rooms_count[roomname]+=1
|
||||
|
||||
# Ajout des infos supplémentaires sur les salles (heures de début-fin de dispo, indicateur de dispo), s'il y en a :
|
||||
# Première boucle, pour déterminer les salles occupées :
|
||||
@ -239,5 +249,9 @@ def getrooms(datet, links=[]) :
|
||||
# occupied_at = total_rooms[roomname]["occupied_at"]
|
||||
# if dateend.timestamp() > total_rooms[roomname]["free_at"].timestamp() :
|
||||
# free_at = total_rooms[roomname]["free_at"]
|
||||
|
||||
# Filtrer les salles qui ne sont mentionnées qu'un certain nombre de fois
|
||||
# Et qui n'on pas de virgule dans le nom
|
||||
for roomname in rooms_count.keys():
|
||||
if rooms_count[roomname]<min_occur or "," in roomname:
|
||||
del(total_rooms[roomname])
|
||||
return total_rooms
|
||||
|
Loading…
x
Reference in New Issue
Block a user