From 5bc1fb8e819b7e40df2fd573699361706ebc6d37 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 13 May 2025 10:31:07 +0200 Subject: [PATCH] Allow to set multiple email invoice recipients (Z#23190766) (#5090) --- src/pretix/base/services/invoices.py | 2 +- src/pretix/base/settings.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index c7559b6c0..ce612003c 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -531,7 +531,7 @@ def send_invoices_to_organizer(sender, **kwargs): if i.event.settings.invoice_email_organizer: with language(i.event.settings.locale): mail( - email=i.event.settings.invoice_email_organizer, + email=[e.strip() for e in i.event.settings.invoice_email_organizer.split(",")], subject=_('New invoice: {number}').format(number=i.number), template=LazyI18nString.from_gettext(_( 'Hello,\n\n' diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index 6d5a24b9f..4c205f096 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -71,6 +71,7 @@ from pretix.base.reldate import ( RelativeDateField, RelativeDateTimeField, RelativeDateWrapper, SerializerRelativeDateField, SerializerRelativeDateTimeField, ) +from pretix.base.validators import multimail_validate from pretix.control.forms import ( ExtFileField, FontSelect, MultipleLanguagesWidget, SingleLanguageWidget, ) @@ -1233,14 +1234,18 @@ DEFAULTS = { 'invoice_email_organizer': { 'default': '', 'type': str, - 'form_class': forms.EmailField, - 'serializer_class': serializers.EmailField, + 'form_class': forms.CharField, + 'serializer_class': serializers.CharField, 'form_kwargs': dict( label=_("Email address to receive a copy of each invoice"), help_text=_("Each newly created invoice will be sent to this email address shortly after creation. You can " "use this for an automated import of invoices to your accounting system. The invoice will be " "the only attachment of the email."), - ) + validators=[multimail_validate], + ), + 'serializer_kwargs': dict( + validators=[multimail_validate], + ), }, 'show_items_outside_presale_period': { 'default': 'True',