forked from CGM_Public/pretix_original
Allow to disable some e-mails depending on sales channel (#1726)
Co-authored-by: Raphael Michel <michel@rami.io>
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
from urllib.parse import urlencode, urlparse
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
@@ -17,6 +15,7 @@ from i18nfield.forms import (
|
||||
I18nForm, I18nFormField, I18nFormSetMixin, I18nTextarea, I18nTextInput,
|
||||
)
|
||||
from pytz import common_timezones, timezone
|
||||
from urllib.parse import urlencode, urlparse
|
||||
|
||||
from pretix.base.channels import get_all_sales_channels
|
||||
from pretix.base.email import get_available_placeholders
|
||||
@@ -750,6 +749,11 @@ def multimail_validate(val):
|
||||
return s
|
||||
|
||||
|
||||
def contains_web_channel_validate(val):
|
||||
if "web" not in val:
|
||||
raise ValidationError(_("The online shop must be selected to receive these emails."))
|
||||
|
||||
|
||||
class MailSettingsForm(SettingsForm):
|
||||
auto_fields = [
|
||||
'mail_prefix',
|
||||
@@ -758,6 +762,27 @@ class MailSettingsForm(SettingsForm):
|
||||
'mail_attach_ical',
|
||||
]
|
||||
|
||||
mail_sales_channel_placed_paid = forms.MultipleChoiceField(
|
||||
choices=lambda: [(ident, sc.verbose_name) for ident, sc in get_all_sales_channels().items()],
|
||||
label=_('Sales channels for checkout emails'),
|
||||
help_text=_('The order placed and paid emails will only be send to orders from these sales channels. '
|
||||
'The online shop must be enabled.'),
|
||||
widget=forms.CheckboxSelectMultiple(
|
||||
attrs={'class': 'scrolling-multiple-choice'}
|
||||
),
|
||||
validators=[contains_web_channel_validate],
|
||||
)
|
||||
|
||||
mail_sales_channel_download_reminder = forms.MultipleChoiceField(
|
||||
choices=lambda: [(ident, sc.verbose_name) for ident, sc in get_all_sales_channels().items()],
|
||||
label=_('Sales channels'),
|
||||
help_text=_('This email will only be send to orders from these sales channels. The online shop must be enabled.'),
|
||||
widget=forms.CheckboxSelectMultiple(
|
||||
attrs={'class': 'scrolling-multiple-choice'}
|
||||
),
|
||||
validators=[contains_web_channel_validate],
|
||||
)
|
||||
|
||||
mail_bcc = forms.CharField(
|
||||
label=_("Bcc address"),
|
||||
help_text=_("All emails will be sent to this address as a Bcc copy"),
|
||||
|
||||
Reference in New Issue
Block a user