From 92aa65a83944e1067b13f4264bcc6d012eff2576 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 14 Apr 2017 18:05:02 +0200 Subject: [PATCH] Small refinements on the previous commit --- src/pretix/base/exporters/mail.py | 1 + src/pretix/base/forms/__init__.py | 3 ++- src/pretix/base/forms/validators.py | 7 +++++++ src/pretix/control/forms/event.py | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/pretix/base/exporters/mail.py b/src/pretix/base/exporters/mail.py index 4afecaad63..8c9e9d3351 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 756f60f0dc..7bd123b736 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 2e87623b73..d619ed2716 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 da66e04a0f..e69bfb1404 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