Repository :
http://git.fedorahosted.org/cgit/fedocal.git
On branch : master
---------------------------------------------------------------
commit ddabdd75633c7aa9063b6fd01c95805d32578cea
Author: Pierre-Yves Chibon <pingou(a)pingoured.fr>
Date: Mon Dec 3 20:36:01 2012 +0100
Fix hopefully for the last time the checking if the agenda is free
With this fix we finally completely check that there are no meetings
runnings in a given time period.
---------------------------------------------------------------
fedocal/fedocallib/__init__.py | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/fedocal/fedocallib/__init__.py b/fedocal/fedocallib/__init__.py
index f610f3a..4b78d61 100644
--- a/fedocal/fedocallib/__init__.py
+++ b/fedocal/fedocallib/__init__.py
@@ -454,10 +454,23 @@ def agenda_is_free(session, calendar, meeting_date,
time_start)
meetings.extend(Meeting.at_time(session, calendar, meeting_date,
time_stop))
- if not meetings:
- return True
- else:
- return False
+ meetings.extend(Meeting.get_by_time(session, calendar, meeting_date,
+ time_start, time_stop))
+ agenda_free = True
+ for meeting in set(meetings):
+ if time_start <= meeting.meeting_time_start \
+ and meeting.meeting_time_start < time_stop:
+ agenda_free = False
+ elif time_start < meeting.meeting_time_stop \
+ and meeting.meeting_time_stop <= time_stop:
+ agenda_free = False
+ elif time_start < meeting.meeting_time_start \
+ and time_stop > meeting.meeting_time_stop:
+ agenda_free = False
+ elif time_start > meeting.meeting_time_start \
+ and time_stop < meeting.meeting_time_stop:
+ agenda_free = False
+ return agenda_free
def is_user_managing_in_calendar(session, calendar_name, fas_user):