forked from CGM_Public/pretix_original
Use a more human-friendly file name for calendar attachments
This commit is contained in:
@@ -63,6 +63,7 @@ from django.utils.timezone import now, override
|
|||||||
from django.utils.translation import gettext as _, pgettext
|
from django.utils.translation import gettext as _, pgettext
|
||||||
from django_scopes import scope, scopes_disabled
|
from django_scopes import scope, scopes_disabled
|
||||||
from i18nfield.strings import LazyI18nString
|
from i18nfield.strings import LazyI18nString
|
||||||
|
from text_unidecode import unidecode
|
||||||
|
|
||||||
from pretix.base.email import ClassicMailRenderer
|
from pretix.base.email import ClassicMailRenderer
|
||||||
from pretix.base.i18n import language
|
from pretix.base.i18n import language
|
||||||
@@ -431,8 +432,9 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
if attach_ical:
|
if attach_ical:
|
||||||
|
fname = re.sub('[^a-zA-Z0-9 ]', '-', unidecode(pgettext('attachment_filename', 'Calendar invite')))
|
||||||
for i, cal in enumerate(get_private_icals(event, [position] if position else order.positions.all())):
|
for i, cal in enumerate(get_private_icals(event, [position] if position else order.positions.all())):
|
||||||
email.attach('event-{}.ics'.format(i), cal.serialize(), 'text/calendar')
|
email.attach('{}{}.ics'.format(fname, f'-{i + 1}' if i > 0 else ''), cal.serialize(), 'text/calendar')
|
||||||
|
|
||||||
email = email_filter.send_chained(event, 'message', message=email, order=order, user=user)
|
email = email_filter.send_chained(event, 'message', message=email, order=order, user=user)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user