diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py index b3575d584b..720d38564c 100644 --- a/src/pretix/api/serializers/event.py +++ b/src/pretix/api/serializers/event.py @@ -656,6 +656,7 @@ class EventSettingsSerializer(SettingsSerializer): 'mail_from', 'mail_from_name', 'mail_attach_ical', + 'mail_attach_tickets', 'invoice_address_asked', 'invoice_address_required', 'invoice_address_vatid', diff --git a/src/pretix/base/services/mail.py b/src/pretix/base/services/mail.py index ce773adf8c..ab701b0d04 100644 --- a/src/pretix/base/services/mail.py +++ b/src/pretix/base/services/mail.py @@ -291,6 +291,8 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st order = None else: with language(order.locale, event.settings.region): + if not event.settings.mail_attach_tickets: + attach_tickets = False if position: try: position = order.positions.get(pk=position) diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index db82c6dc16..6a76c25987 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -13,6 +13,7 @@ from django.core.validators import ( MaxValueValidator, MinValueValidator, RegexValidator, ) from django.db.models import Model +from django.utils.text import format_lazy from django.utils.translation import ( gettext_lazy as _, gettext_noop, pgettext, pgettext_lazy, ) @@ -1322,6 +1323,19 @@ DEFAULTS = { 'default': 'classic', 'type': str }, + 'mail_attach_tickets': { + 'default': 'True', + 'type': bool, + 'form_class': forms.BooleanField, + 'serializer_class': serializers.BooleanField, + 'form_kwargs': dict( + label=_("Attach ticket files"), + help_text=format_lazy( + _("Tickets will never be attached if they're larger than {size} to avoid email delivery problems."), + size='4 MB' + ), + ) + }, 'mail_attach_ical': { 'default': 'False', 'type': bool, diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index 5317443394..141f0b9c17 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -786,6 +786,7 @@ class MailSettingsForm(SettingsForm): 'mail_from', 'mail_from_name', 'mail_attach_ical', + 'mail_attach_tickets', ] mail_sales_channel_placed_paid = forms.MultipleChoiceField( diff --git a/src/pretix/control/templates/pretixcontrol/event/mail.html b/src/pretix/control/templates/pretixcontrol/event/mail.html index ce2ab2905a..22caefe915 100644 --- a/src/pretix/control/templates/pretixcontrol/event/mail.html +++ b/src/pretix/control/templates/pretixcontrol/event/mail.html @@ -16,6 +16,7 @@ {% bootstrap_field form.mail_from_name layout="control" %} {% bootstrap_field form.mail_text_signature layout="control" %} {% bootstrap_field form.mail_bcc layout="control" %} + {% bootstrap_field form.mail_attach_tickets layout="control" %} {% bootstrap_field form.mail_attach_ical layout="control" %} {% bootstrap_field form.mail_sales_channel_placed_paid layout="control" %}