From f4cbb881bd06bae8fcf561f369a781dae7e19780 Mon Sep 17 00:00:00 2001 From: joseph Date: Sat, 20 Apr 2024 12:32:03 +0200 Subject: [PATCH] fix broken ics export --- colloscope/icalexport.py | 34 +++++++--------------------------- static/Base_Calendar.ics | 26 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 27 deletions(-) create mode 100644 static/Base_Calendar.ics diff --git a/colloscope/icalexport.py b/colloscope/icalexport.py index ed85083..b7ebc62 100644 --- a/colloscope/icalexport.py +++ b/colloscope/icalexport.py @@ -1,7 +1,7 @@ from datetime import date, time, datetime, timedelta from pytz import timezone from uuid import uuid4 - +from os import path from icalendar import Calendar, Event, vCalAddress, vText from colloscope.models import * @@ -10,32 +10,12 @@ LOCAL_TZ = "Europe/Paris" def to_calendar(etudiant, periode): - cal = Calendar() - cal.add("prodid", "-//Colloscope//colles.mp2i-vms.fr//") - cal.add("version", "2.0") - cal.add( - """ - BEGIN:VTIMEZONE - TZID:Europe/Paris - X-LIC-LOCATION:Europe/Paris - BEGIN:DAYLIGHT - TZOFFSETFROM:+0100 - TZOFFSETTO:+0200 - TZNAME:CEST - DTSTART:19700329T020000 - RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU - END:DAYLIGHT - BEGIN:STANDARD - TZOFFSETFROM:+0200 - TZOFFSETTO:+0100 - TZNAME:CET - DTSTART:19701025T030000 - RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU - END:STANDARD - END:VTIMEZONE - """ - ) + p = path.abspath('./static/Base_Calendar.ics') + + with open(p) as f: + cal = Calendar.from_ical(f.read()) + rotations = Rotation.objects \ .filter(groupes__membres=etudiant) \ @@ -63,7 +43,7 @@ def to_calendar(etudiant, periode): description = "Groupes: {','.join(str(groupe) for groupe in rotation.groupes.all())}" event.add(description) - + organizer = vCalAddress("mailto:unknown@mp2i-vms.fr") organizer.params["cn"] = vText(str(rotation.creneau.colleur)) organizer.params["role"] = vText("Colleur") diff --git a/static/Base_Calendar.ics b/static/Base_Calendar.ics new file mode 100644 index 0000000..8b81666 --- /dev/null +++ b/static/Base_Calendar.ics @@ -0,0 +1,26 @@ +BEGIN:VCALENDAR +PRODID:-//mp2i-vms-[2]-(23-24)-s3//Stackity Bot Inc//EN +VERSION:2.0 +CALSCALE:GREGORIAN +METHOD:PUBLISH +X-WR-CALNAME:EDT +X-WR-TIMEZONE:Europe/Paris +BEGIN:VTIMEZONE +TZID:Europe/Paris +X-LIC-LOCATION:Europe/Paris +BEGIN:DAYLIGHT +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +TZNAME:CEST +DTSTART:19700329T020000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +TZNAME:CET +DTSTART:19701025T030000 +RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU +END:STANDARD +END:VTIMEZONE +END:VCALENDAR \ No newline at end of file