diff --git a/src/pretix/base/exporters/mail.py b/src/pretix/base/exporters/mail.py index 4afecaad6..8c9e9d335 100644 --- a/src/pretix/base/exporters/mail.py +++ b/src/pretix/base/exporters/mail.py @@ -5,6 +5,7 @@ from django.dispatch import receiver from django.utils.translation import ugettext_lazy as _ from pretix.base.models import OrderPosition + from ..exporter import BaseExporter from ..models import Order from ..signals import register_data_exporters diff --git a/src/pretix/base/forms/__init__.py b/src/pretix/base/forms/__init__.py index 756f60f0d..7bd123b73 100644 --- a/src/pretix/base/forms/__init__.py +++ b/src/pretix/base/forms/__init__.py @@ -6,9 +6,10 @@ from django.utils import six from django.utils.crypto import get_random_string from hierarkey.forms import HierarkeyForm -from .validators import PlaceholderValidator from pretix.base.models import Event +from .validators import PlaceholderValidator # NOQA + logger = logging.getLogger('pretix.plugins.ticketoutputpdf') diff --git a/src/pretix/base/forms/validators.py b/src/pretix/base/forms/validators.py index 2e87623b7..d619ed271 100644 --- a/src/pretix/base/forms/validators.py +++ b/src/pretix/base/forms/validators.py @@ -1,7 +1,9 @@ import re + from django.core.exceptions import ValidationError from django.core.validators import BaseValidator from django.utils.translation import ugettext_lazy as _ +from i18nfield.strings import LazyI18nString class PlaceholderValidator(BaseValidator): @@ -16,6 +18,11 @@ class PlaceholderValidator(BaseValidator): self.limit_value = limit_value def __call__(self, value): + if isinstance(value, LazyI18nString): + for l, v in value.data.items(): + self.__call__(v) + return + data_placeholders = list(re.findall(r'({[\w\s]*})', value, re.X)) invalid_placeholders = [] for placeholder in data_placeholders: diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index da66e04a0..e69bfb140 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _ from i18nfield.forms import I18nFormField, I18nTextarea from pytz import common_timezones, timezone -from pretix.base.forms import I18nModelForm, SettingsForm, PlaceholderValidator +from pretix.base.forms import I18nModelForm, PlaceholderValidator, SettingsForm from pretix.base.models import Event, Organizer from pretix.control.forms import ExtFileField