From 98817fc84187cec180abc1c57648f9905fec0763 Mon Sep 17 00:00:00 2001
From: Grollicus <cccvgitlab.db5c7b60@grollmann.eu>
Date: Sat, 26 Dec 2020 15:01:40 +0100
Subject: [PATCH] fixed initial fahrplan offset

---
 src/plainui/tests.py | 5 +++--
 src/plainui/views.py | 3 +++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/plainui/tests.py b/src/plainui/tests.py
index f7344af7c..b89515936 100644
--- a/src/plainui/tests.py
+++ b/src/plainui/tests.py
@@ -1395,13 +1395,13 @@ class ViewsTest(TestCase):
         track.save()
         event1 = Event(
             conference=self.conf, assembly=assembly, track=track, name='Event1_1', is_public=True, room=room,
-            schedule_start=datetime(2020, 1, 2, 0, 0, 0, tzinfo=utc), schedule_duration=timedelta(minutes=45)
+            schedule_start=datetime(2020, 1, 2, 0, 15, 0, tzinfo=utc), schedule_duration=timedelta(minutes=45)
         )
         event1.save()
         EventParticipant(is_public=True, participant=self.user, event=event1, role=EventParticipant.Role.SPEAKER).save()
         event2 = Event(
             conference=self.conf, assembly=assembly, track=track, name='Event1_2', is_public=True, room=room,
-            schedule_start=datetime(2020, 1, 2, 1, 0, 0, tzinfo=utc), schedule_duration=timedelta(minutes=45)
+            schedule_start=datetime(2020, 1, 2, 1, 15, 0, tzinfo=utc), schedule_duration=timedelta(minutes=45)
         )
         event2.save()
 
@@ -1420,6 +1420,7 @@ class ViewsTest(TestCase):
         self.assertEqual(resp.context_data['mode'], 'calendar')
         self.assertEqual(resp.context_data['events'], {
             'rooms_with_events': [(room, [
+                {'type': 'space', 'minutes': 15.0},
                 {'type': 'event', 'event': event1, 'minutes': 45.0},
                 {'type': 'space', 'minutes': 15.0},
                 {'type': 'event', 'event': event2, 'minutes': 45.0}
diff --git a/src/plainui/views.py b/src/plainui/views.py
index 1c8b61bcc..57e5c833b 100644
--- a/src/plainui/views.py
+++ b/src/plainui/views.py
@@ -980,6 +980,9 @@ def _organize_events_for_calendar(conf, events):
     for event in events:
         if first_start is None:
             first_start = event.schedule_start
+            calendar_start = localtime(first_start.replace(minute=0, second=0, microsecond=0))
+            if localtime(first_start) != calendar_start:
+                first_start = first_start - (localtime(first_start) - calendar_start)
 
         if event.room_id not in events_by_room:
             events_by_room[event.room_id] = []
-- 
GitLab