diff --git a/src/pretix/base/pdf.py b/src/pretix/base/pdf.py index e4b8159c0..d8caaa34a 100644 --- a/src/pretix/base/pdf.py +++ b/src/pretix/base/pdf.py @@ -77,6 +77,7 @@ from reportlab.platypus import Paragraph from pretix.base.i18n import language from pretix.base.models import Checkin, Event, Order, OrderPosition, Question +from pretix.base.services.placeholders import PlaceholderContext from pretix.base.settings import PERSON_NAME_SCHEMES from pretix.base.signals import layout_image_variables, layout_text_variables from pretix.base.templatetags.money import money_filter @@ -401,11 +402,7 @@ DEFAULT_VARIABLES = OrderedDict(( "editor_sample": _("Event organizer info text"), "evaluate": lambda op, order, ev: str(order.event.settings.organizer_info_text) }), - ("event_info_text", { - "label": _("Event info text"), - "editor_sample": _("Event info text"), - "evaluate": lambda op, order, ev: str(order.event.settings.event_info_text) - }), + ("event_info_text", {}), # Placeholder to "reserve" position, defined later in `get_variables` ("now_date", { "label": _("Printing date"), "editor_sample": _("2017-05-31"), @@ -670,6 +667,14 @@ def get_images(event): def get_variables(event): v = copy.copy(DEFAULT_VARIABLES) + templating_context = PlaceholderContext(event=event) + v['event_info_text'] = { + "label": _("Event info text"), + "editor_sample": _("Event info text"), + "evaluate": lambda op, order, ev: + templating_context.format(str(order.event.settings.event_info_text)) + } + scheme = PERSON_NAME_SCHEMES[event.settings.name_scheme] concatenation_for_salutation = scheme.get("concatenation_for_salutation", scheme["concatenation"]) diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index ca5a34d4c..588ee56a8 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -671,6 +671,11 @@ class EventSettingsForm(EventSettingsValidationMixin, FormPlaceholderMixin, Sett base_context = { 'frontpage_text': ['event'], + 'presale_has_ended_text': ['event'], + 'voucher_explanation_text': ['event'], + 'banner_text': ['event'], + 'banner_text_bottom': ['event'], + 'event_info_text': ['event'], } def _resolve_virtual_keys_input(self, data, prefix=''): diff --git a/src/pretix/presale/context.py b/src/pretix/presale/context.py index 203361ac2..0a7683c09 100644 --- a/src/pretix/presale/context.py +++ b/src/pretix/presale/context.py @@ -46,6 +46,7 @@ from pretix.helpers.i18n import ( ) from ..base.i18n import get_language_without_region +from ..base.services.placeholders import PlaceholderContext from ..multidomain.urlreverse import eventreverse from .cookies import get_cookie_providers from .signals import ( @@ -87,6 +88,12 @@ def _default_context(request): f'{request.event.cache.get_or_set("css_version", default=lambda: int(time.time()))}') ctx['css_theme'] = eventreverse(request.event, "presale:event.theme.css") + "?version=" + theme_css_version + templating_context = PlaceholderContext(event=request.event) + ctx['event_texts'] = { + field: templating_context.format(str(request.event.settings.get(field))) + for field in ('banner_text', 'banner_text_bottom', 'voucher_explanation_text') + } + elif hasattr(request, 'organizer') and request.organizer: pretix_settings = request.organizer.settings diff --git a/src/pretix/presale/templates/pretixpresale/event/base.html b/src/pretix/presale/templates/pretixpresale/event/base.html index 2948ab649..b3f566c83 100644 --- a/src/pretix/presale/templates/pretixpresale/event/base.html +++ b/src/pretix/presale/templates/pretixpresale/event/base.html @@ -184,18 +184,18 @@ {% endfor %} {% endif %} - {% if request.event.settings.banner_text %} + {% if event_texts.banner_text %}