Amélioration de la détermination des périodes de dispo des salles.
This commit is contained in:
parent
7a84a354ce
commit
8c06c3abfa
25
rooms_get.py
25
rooms_get.py
@ -179,6 +179,7 @@ def getrooms(datet, links=[]) :
|
|||||||
total_rooms[roomname] = room(roomname, start, end, is_free)
|
total_rooms[roomname] = room(roomname, start, end, is_free)
|
||||||
|
|
||||||
# Ajout des infos supplémentaires sur les salles (heures de début-fin de dispo, indicateur de dispo), s'il y en a :
|
# 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 :
|
||||||
for cal in cals : # Bâtiments
|
for cal in cals : # Bâtiments
|
||||||
for comp in cal.walk() : # Événements
|
for comp in cal.walk() : # Événements
|
||||||
if comp.name == "VEVENT" :
|
if comp.name == "VEVENT" :
|
||||||
@ -187,25 +188,35 @@ def getrooms(datet, links=[]) :
|
|||||||
dateend = comp.decoded("dtend")
|
dateend = comp.decoded("dtend")
|
||||||
roomname = str(comp.get("location"))
|
roomname = str(comp.get("location"))
|
||||||
|
|
||||||
# Soit l'événement se passe maintenant (salle occupée maintenant) :
|
# L'événement se passe maintenant (salle occupée maintenant) :
|
||||||
if datestart.timestamp() <= datet.timestamp() and dateend.timestamp() > datet.timestamp() :
|
if datestart.timestamp() <= datet.timestamp() and dateend.timestamp() > datet.timestamp() :
|
||||||
start = dateend # L'heure de début de la prochaine période de disponibilité est la fin de l'événement
|
start = dateend # L'heure de début de la prochaine période de disponibilité est la fin de l'événement
|
||||||
if roomname not in total_rooms.keys() :
|
|
||||||
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
|
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
|
||||||
else :
|
|
||||||
end = total_rooms[roomname]["end"]
|
|
||||||
is_free = False
|
is_free = False
|
||||||
total_rooms[roomname] = room(roomname, start, end, is_free)
|
total_rooms[roomname] = room(roomname, start, end, is_free)
|
||||||
|
|
||||||
# Soit l'événement se passe prochainement (salle occupée à l'occasion de cet événement) :
|
# Deuxième boucle, pour ajouter les heures de dispos des salles :
|
||||||
elif datestart.timestamp() > datet.timestamp() :
|
for cal in cals : # Bâtiments
|
||||||
|
for comp in cal.walk() : # Événements
|
||||||
|
if comp.name == "VEVENT" :
|
||||||
|
# Récupération des infos :
|
||||||
|
datestart = comp.decoded("dtstart")
|
||||||
|
dateend = comp.decoded("dtend")
|
||||||
|
roomname = str(comp.get("location"))
|
||||||
|
|
||||||
|
# L'événement se passe prochainement (salle occupée à l'occasion de cet événement) :
|
||||||
|
if datestart.timestamp() > datet.timestamp() :
|
||||||
if roomname not in total_rooms.keys() :
|
if roomname not in total_rooms.keys() :
|
||||||
# On suppose d'abord que la salle est libre maintenant :
|
# La salle est forcément libre, car les salles occupées sont déjà toutes enregistrées :
|
||||||
start = datet.replace(hour = 0, minute = 0, second=0) # Par défaut, l'heure de début de disponibilité est aujourd'hui à 00:00
|
start = datet.replace(hour = 0, minute = 0, second=0) # Par défaut, l'heure de début de disponibilité est aujourd'hui à 00:00
|
||||||
end = datestart # L'heure de fin de disponibilité est le début de l'événement
|
end = datestart # L'heure de fin de disponibilité est le début de l'événement
|
||||||
is_free = True
|
is_free = True
|
||||||
total_rooms[roomname] = room(roomname, start, end, is_free)
|
total_rooms[roomname] = room(roomname, start, end, is_free)
|
||||||
elif datestart.timestamp() < total_rooms[roomname]["end"].timestamp() :
|
elif datestart.timestamp() < total_rooms[roomname]["end"].timestamp() :
|
||||||
|
if datestart.timestamp() == total_rooms[roomname]["start"] :
|
||||||
|
start = dateend
|
||||||
|
end = total_rooms[roomname]["end"]
|
||||||
|
else :
|
||||||
start = total_rooms[roomname]["start"]
|
start = total_rooms[roomname]["start"]
|
||||||
end = datestart
|
end = datestart
|
||||||
is_free = total_rooms[roomname]["is_free"]
|
is_free = total_rooms[roomname]["is_free"]
|
||||||
|
Loading…
Reference in New Issue
Block a user