From 49ec05dd1611fa379d57e2c3f578c39f66db54ab Mon Sep 17 00:00:00 2001
From: David Trattnig <david.trattnig@o94.at>
Date: Wed, 10 Jun 2020 14:21:36 +0200
Subject: [PATCH] Skip schedules in the past when deleting.

---
 modules/scheduling/calendar.py | 38 +++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/modules/scheduling/calendar.py b/modules/scheduling/calendar.py
index 52b99277..454ece20 100644
--- a/modules/scheduling/calendar.py
+++ b/modules/scheduling/calendar.py
@@ -108,29 +108,29 @@ class AuraCalendarService(threading.Thread):
             local_schedules = Schedule.select_programme(datetime.now())
             for local_schedule in local_schedules:
 
-                # Only allow deletion of schedules which are before the start of the scheduling window
-                if local_schedule.start_unix > now_unix and (local_schedule.start_unix - scheduling_window_start) > now_unix:
-
-                    # Filter the local schedule from the fetched ones
-                    existing_schedule = list(filter(lambda new_schedule: \
-                        new_schedule["schedule_id"] == local_schedule.schedule_id, fetched_schedule_data))
-                    
-                    if existing_schedule:
-                        # self.logger.debug("Schedule #%s is still existing remotely!" % (local_schedule.schedule_id))
-                        pass
-                    else:
-                        self.logger.info("Schedule #%s has been deleted remotely, hence also delete it locally [%s]" % \
-                            (local_schedule.schedule_id, str(local_schedule)))
-                        local_schedule.delete(commit=True)
-                        self.logger.info("Deleted local schedule #%s from database" % local_schedule.schedule_id)
+                # Only allow deletion of schedules which are deleted before the start of the scheduling window
+                if local_schedule.start_unix > now_unix:
+                    if (local_schedule.start_unix - scheduling_window_start) > now_unix:
+
+                        # Filter the local schedule from the fetched ones
+                        existing_schedule = list(filter(lambda new_schedule: \
+                            new_schedule["schedule_id"] == local_schedule.schedule_id, fetched_schedule_data))
+                        
+                        if existing_schedule:
+                            # self.logger.debug("Schedule #%s is still existing remotely!" % (local_schedule.schedule_id))
+                            pass
+                        else:
+                            self.logger.info("Schedule #%s has been deleted remotely, hence also delete it locally [%s]" % \
+                                (local_schedule.schedule_id, str(local_schedule)))
+                            local_schedule.delete(commit=True)
+                            self.logger.info("Deleted local schedule #%s from database" % local_schedule.schedule_id)
 
-                else:
-                    msg = "Schedule #%s has been deleted remotely. Since the scheduling window already started, it won't be deleted locally." % local_schedule.schedule_id
-                    self.logger.warn(SimpleUtil.red(msg))
+                    else:
+                        msg = "Schedule #%s has been deleted remotely. Since the scheduling window has already started, it won't be deleted locally." % local_schedule.schedule_id
+                        self.logger.warn(SimpleUtil.red(msg))
 
                 
 
-
             # Process fetched schedules    
             for schedule in fetched_schedule_data:
 
-- 
GitLab