mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 09:12:11 +01:00 
			
		
		
		
	Fix linebreaks in ICS file
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
				
			|||||||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
 | 
					# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
 | 
				
			||||||
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
					# SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
from hashlib import md5
 | 
					from hashlib import md5
 | 
				
			||||||
 | 
					from random import randint
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.conf import settings
 | 
					from django.conf import settings
 | 
				
			||||||
from django.contrib.auth.mixins import LoginRequiredMixin
 | 
					from django.contrib.auth.mixins import LoginRequiredMixin
 | 
				
			||||||
@@ -10,6 +11,7 @@ from django.db.models import F, Q
 | 
				
			|||||||
from django.http import HttpResponse
 | 
					from django.http import HttpResponse
 | 
				
			||||||
from django.urls import reverse_lazy
 | 
					from django.urls import reverse_lazy
 | 
				
			||||||
from django.utils import timezone
 | 
					from django.utils import timezone
 | 
				
			||||||
 | 
					from django.utils.crypto import get_random_string
 | 
				
			||||||
from django.utils.translation import gettext_lazy as _
 | 
					from django.utils.translation import gettext_lazy as _
 | 
				
			||||||
from django.views import View
 | 
					from django.views import View
 | 
				
			||||||
from django.views.generic import DetailView, TemplateView, UpdateView
 | 
					from django.views.generic import DetailView, TemplateView, UpdateView
 | 
				
			||||||
@@ -309,7 +311,6 @@ NAME:Kfet Calendar
 | 
				
			|||||||
CALSCALE:GREGORIAN
 | 
					CALSCALE:GREGORIAN
 | 
				
			||||||
BEGIN:VTIMEZONE
 | 
					BEGIN:VTIMEZONE
 | 
				
			||||||
TZID:Europe/Berlin
 | 
					TZID:Europe/Berlin
 | 
				
			||||||
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
 | 
					 | 
				
			||||||
X-LIC-LOCATION:Europe/Berlin
 | 
					X-LIC-LOCATION:Europe/Berlin
 | 
				
			||||||
BEGIN:DAYLIGHT
 | 
					BEGIN:DAYLIGHT
 | 
				
			||||||
TZOFFSETFROM:+0100
 | 
					TZOFFSETFROM:+0100
 | 
				
			||||||
@@ -330,12 +331,12 @@ END:VTIMEZONE
 | 
				
			|||||||
        for activity in Activity.objects.filter(valid=True).order_by("-date_start").all():
 | 
					        for activity in Activity.objects.filter(valid=True).order_by("-date_start").all():
 | 
				
			||||||
            ics += f"""BEGIN:VEVENT
 | 
					            ics += f"""BEGIN:VEVENT
 | 
				
			||||||
DTSTAMP:{"{:%Y%m%dT%H%M%S}".format(activity.date_start)}Z
 | 
					DTSTAMP:{"{:%Y%m%dT%H%M%S}".format(activity.date_start)}Z
 | 
				
			||||||
UID:{activity.id}
 | 
					UID:{md5((activity.name + "$" + str(activity.id) + str(activity.date_start)).encode("UTF-8")).hexdigest()}
 | 
				
			||||||
SUMMARY;CHARSET=UTF-8:{self.multilines(activity.name, 75, 22)}
 | 
					SUMMARY;CHARSET=UTF-8:{self.multilines(activity.name, 75, 22)}
 | 
				
			||||||
DTSTART;TZID=Europe/Berlin:{"{:%Y%m%dT%H%M%S}".format(activity.date_start)}
 | 
					DTSTART;TZID=Europe/Berlin:{"{:%Y%m%dT%H%M%S}".format(activity.date_start)}
 | 
				
			||||||
DTEND;TZID=Europe/Berlin:{"{:%Y%m%dT%H%M%S}".format(activity.date_end)}
 | 
					DTEND;TZID=Europe/Berlin:{"{:%Y%m%dT%H%M%S}".format(activity.date_end)}
 | 
				
			||||||
LOCATION:{self.multilines(activity.location, 75, 9) if activity.location else "Kfet"}
 | 
					LOCATION:{self.multilines(activity.location, 75, 9) if activity.location else "Kfet"}
 | 
				
			||||||
DESCRIPTION;CHARSET=UTF-8:{self.multilines(activity.description, 75, 26)}
 | 
					DESCRIPTION;CHARSET=UTF-8:""" + self.multilines(activity.description.replace("\n", "\\n"), 75, 26) + """
 | 
				
			||||||
 -- {activity.organizer.name}
 | 
					 -- {activity.organizer.name}
 | 
				
			||||||
END:VEVENT
 | 
					END:VEVENT
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user