diff --git a/calendar_utils/parser.py b/calendar_utils/parser.py index 4693a4ef2f8536bc5ca5a7118a8a6548c70fabaf..2a7ab40387b33e2098db818e6c0f775bc112bd5d 100644 --- a/calendar_utils/parser.py +++ b/calendar_utils/parser.py @@ -1,6 +1,7 @@ from operator import attrgetter import arrow +from django.conf import settings from ics import Calendar EVENT_KEYS = ("begin", "end", "all_day", "name", "description", "location") @@ -31,12 +32,12 @@ def set_event_duration(event): delta = event["end"] - event["begin"] if delta.days < 1: - begin = event["begin"].format("H:mm") - end = event["end"].format("H:mm") + begin = event["begin"].to(settings.TIME_ZONE).format("H:mm") + end = event["end"].to(settings.TIME_ZONE).format("H:mm") event["duration"] = f"{begin} - {end}" else: - begin = event["begin"].format("H:mm") - end = event["end"].format("H:mm (D.M.)") + begin = event["begin"].to(settings.TIME_ZONE).format("H:mm") + end = event["end"].to(settings.TIME_ZONE).format("H:mm (D.M.)") event["duration"] = f"{begin} - {end}" return event diff --git a/tests/calendar_utils/snapshots/snap_test_models.py b/tests/calendar_utils/snapshots/snap_test_models.py index a396ca4f2c0e6f75b798a0dc06bbd6ec298e9f5b..f3d023a2c8961f498dda694aa7318c815f92c9bf 100644 --- a/tests/calendar_utils/snapshots/snap_test_models.py +++ b/tests/calendar_utils/snapshots/snap_test_models.py @@ -12,7 +12,7 @@ snapshots['test_calendar__update_source 1'] = [ 'all_day': False, 'begin': GenericRepr('FakeDatetime(2020, 1, 23, 17, 0, tzinfo=tzutc())'), 'description': '', - 'duration': '17:00 - 20:00', + 'duration': '18:00 - 21:00', 'end': GenericRepr('FakeDatetime(2020, 1, 23, 20, 0, tzinfo=tzutc())'), 'location': 'The 27 Music Bar, Školní 24, 796 01 Prostějov, Česko', 'name': 'Veřejná schůze Prostějovských Pirátů' @@ -60,7 +60,7 @@ snapshots['test_calendar__update_source 2'] = [ 'all_day': False, 'begin': GenericRepr('FakeDatetime(2020, 4, 8, 16, 0, tzinfo=tzutc())'), 'description': '', - 'duration': '16:00 - 17:30', + 'duration': '18:00 - 19:30', 'end': GenericRepr('FakeDatetime(2020, 4, 8, 17, 30, tzinfo=tzutc())'), 'location': 'Picolo - Pirátské centrum Olomouc, 8. května 522/5, 779 00 Olomouc, Česko', 'name': 'Setkání s místopředsedou Evropského parlamentu Marcelem Kolalokou' @@ -69,7 +69,7 @@ snapshots['test_calendar__update_source 2'] = [ 'all_day': False, 'begin': GenericRepr('FakeDatetime(2020, 3, 24, 17, 0, tzinfo=tzutc())'), 'description': 'Přednáší MUDr. Marti Moron', - 'duration': '17:00 - 18:30', + 'duration': '18:00 - 19:30', 'end': GenericRepr('FakeDatetime(2020, 3, 24, 18, 30, tzinfo=tzutc())'), 'location': '', 'name': 'Je kouření stejně škodlivé jako vapování?' @@ -80,7 +80,7 @@ snapshots['test_calendar__update_source 2'] = [ 'description': '''Tato událost má videohovor. Připojit se: https://meet.google.com/ahv-nrmw-kmp +1 484-696-1205 PIN: 546973991#''', - 'duration': '14:00 - 17:00', + 'duration': '15:00 - 18:00', 'end': GenericRepr('FakeDatetime(2020, 3, 1, 17, 0, tzinfo=tzutc())'), 'location': 'Koliba & Pivovar U Tří králů, Finská 4592/8, 796 01 Prostějov,Česko', 'name': 'Veřejná schůze Prostějovských Pirátů 01.03.2020' @@ -89,7 +89,7 @@ Připojit se: https://meet.google.com/ahv-nrmw-kmp 'all_day': False, 'begin': GenericRepr('FakeDatetime(2020, 2, 21, 17, 30, tzinfo=tzutc())'), 'description': 'Tradiční páteční deskohraní s Karlem Bezejmeným. K zapůjčení budou deskové hry všeho druhu – a to jak jednoduché, tak náročnější pro ty,kteří se nebojí u hry strávit delší dobu. Všechny pravidla Vám budou vysvětlena. Nemusíte se bát.', - 'duration': '17:30 - 21:00', + 'duration': '18:30 - 22:00', 'end': GenericRepr('FakeDatetime(2020, 2, 21, 21, 0, tzinfo=tzutc())'), 'location': 'Picolo - Pirátské centrum Olomouc, 8. května 522/5, 779 00 Olomouc, Česko', 'name': 'Páteční deskovky v Picolu - Karel Bezejmenný' @@ -98,7 +98,7 @@ Připojit se: https://meet.google.com/ahv-nrmw-kmp 'all_day': False, 'begin': GenericRepr('FakeDatetime(2020, 2, 17, 17, 30, tzinfo=tzutc())'), 'description': '', - 'duration': '17:30 - 20:30', + 'duration': '18:30 - 21:30', 'end': GenericRepr('FakeDatetime(2020, 2, 17, 20, 30, tzinfo=tzutc())'), 'location': 'Nebe počká, 20, Kratochvílova 122, Město, 750 02 Přerov, Česko', 'name': 'Schůzka Piráti Přerov' diff --git a/tests/calendar_utils/snapshots/snap_test_parser.py b/tests/calendar_utils/snapshots/snap_test_parser.py index 0ba59b7d4e4f3a71454b863c7f2bea31e9f565f9..908ad894ef13afe367cd7b762140aa52e123f475 100644 --- a/tests/calendar_utils/snapshots/snap_test_parser.py +++ b/tests/calendar_utils/snapshots/snap_test_parser.py @@ -185,7 +185,7 @@ snapshots['test_process_ical 1'] = [ 'all_day': False, 'begin': GenericRepr('<Arrow [2020-01-23T17:00:00+00:00]>'), 'description': '', - 'duration': '17:00 - 20:00', + 'duration': '18:00 - 21:00', 'end': GenericRepr('<Arrow [2020-01-23T20:00:00+00:00]>'), 'location': 'The 27 Music Bar, Školní 24, 796 01 Prostějov, Česko', 'name': 'Veřejná schůze Prostějovských Pirátů' @@ -233,7 +233,7 @@ snapshots['test_process_ical 2'] = [ 'all_day': False, 'begin': GenericRepr('<Arrow [2020-04-08T16:00:00+00:00]>'), 'description': '', - 'duration': '16:00 - 17:30', + 'duration': '18:00 - 19:30', 'end': GenericRepr('<Arrow [2020-04-08T17:30:00+00:00]>'), 'location': 'Picolo - Pirátské centrum Olomouc, 8. května 522/5, 779 00 Olomouc, Česko', 'name': 'Setkání s místopředsedou Evropského parlamentu Marcelem Kolalokou' @@ -242,7 +242,7 @@ snapshots['test_process_ical 2'] = [ 'all_day': False, 'begin': GenericRepr('<Arrow [2020-03-24T17:00:00+00:00]>'), 'description': 'Přednáší MUDr. Marti Moron', - 'duration': '17:00 - 18:30', + 'duration': '18:00 - 19:30', 'end': GenericRepr('<Arrow [2020-03-24T18:30:00+00:00]>'), 'location': '', 'name': 'Je kouření stejně škodlivé jako vapování?' @@ -253,7 +253,7 @@ snapshots['test_process_ical 2'] = [ 'description': '''Tato událost má videohovor. Připojit se: https://meet.google.com/ahv-nrmw-kmp +1 484-696-1205 PIN: 546973991#''', - 'duration': '14:00 - 17:00', + 'duration': '15:00 - 18:00', 'end': GenericRepr('<Arrow [2020-03-01T17:00:00+00:00]>'), 'location': 'Koliba & Pivovar U Tří králů, Finská 4592/8, 796 01 Prostějov,Česko', 'name': 'Veřejná schůze Prostějovských Pirátů 01.03.2020' @@ -262,7 +262,7 @@ Připojit se: https://meet.google.com/ahv-nrmw-kmp 'all_day': False, 'begin': GenericRepr('<Arrow [2020-02-21T17:30:00+00:00]>'), 'description': 'Tradiční páteční deskohraní s Karlem Bezejmeným. K zapůjčení budou deskové hry všeho druhu – a to jak jednoduché, tak náročnější pro ty,kteří se nebojí u hry strávit delší dobu. Všechny pravidla Vám budou vysvětlena. Nemusíte se bát.', - 'duration': '17:30 - 21:00', + 'duration': '18:30 - 22:00', 'end': GenericRepr('<Arrow [2020-02-21T21:00:00+00:00]>'), 'location': 'Picolo - Pirátské centrum Olomouc, 8. května 522/5, 779 00 Olomouc, Česko', 'name': 'Páteční deskovky v Picolu - Karel Bezejmenný' @@ -271,7 +271,7 @@ Připojit se: https://meet.google.com/ahv-nrmw-kmp 'all_day': False, 'begin': GenericRepr('<Arrow [2020-02-17T17:30:00+00:00]>'), 'description': '', - 'duration': '17:30 - 20:30', + 'duration': '18:30 - 21:30', 'end': GenericRepr('<Arrow [2020-02-17T20:30:00+00:00]>'), 'location': 'Nebe počká, 20, Kratochvílova 122, Město, 750 02 Přerov, Česko', 'name': 'Schůzka Piráti Přerov' diff --git a/tests/calendar_utils/test_parser.py b/tests/calendar_utils/test_parser.py index f5ed99ed6f50bcb80fa8428ad4b3ab65d0ecd663..3121910746fce10cca92cdf2a26683181062dde9 100644 --- a/tests/calendar_utils/test_parser.py +++ b/tests/calendar_utils/test_parser.py @@ -38,7 +38,7 @@ def test_set_event_duration__hours(): "all_day": False, } out = set_event_duration(event) - assert out["duration"] == "8:00 - 12:25" + assert out["duration"] == "9:00 - 13:25" def test_set_event_duration__days(): @@ -48,7 +48,7 @@ def test_set_event_duration__days(): "all_day": False, } out = set_event_duration(event) - assert out["duration"] == "9:15 - 22:30 (4.2.)" + assert out["duration"] == "10:15 - 23:30 (4.2.)" @pytest.mark.freeze_time("2020-02-02")