From 95ea2849c2fa440f3ec0708a46d31c02fb8c7364 Mon Sep 17 00:00:00 2001 From: Christopher Banck Date: Wed, 14 Sep 2022 18:51:37 +0200 Subject: [PATCH] PDF: Add event weekday variable (#2789) --- src/pretix/base/models/event.py | 22 ++++++++++++++++++++++ src/pretix/base/pdf.py | 10 ++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index fa66e2aed..d88904fed 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -123,6 +123,16 @@ class EventMixin: ("SHORT_" if short else "") + ("DATETIME_FORMAT" if self.settings.show_times and show_times else "DATE_FORMAT") ) + def get_weekday_from_display(self, tz=None, short=False) -> str: + """ + Returns a formatted string containing the weekday of the start date of the event with respect + to the current locale. + """ + tz = tz or self.timezone + return _date( + self.date_from.astimezone(tz), ("D" if short else "l") + ) + def get_time_from_display(self, tz=None) -> str: """ Returns a formatted string containing the start time of the event, ignoring @@ -147,6 +157,18 @@ class EventMixin: ("SHORT_" if short else "") + ("DATETIME_FORMAT" if self.settings.show_times and show_times else "DATE_FORMAT") ) + def get_weekday_to_display(self, tz=None, short=False) -> str: + """ + Returns a formatted string containing the weekday of the end date of the event with respect + to the current locale. + """ + tz = tz or self.timezone + if not self.settings.show_date_to or not self.date_to: + return "" + return _date( + self.date_to.astimezone(tz), ("D" if short else "l") + ) + def get_date_range_display(self, tz=None, force_show_end=False, as_html=False) -> str: """ Returns a formatted string containing the start date and the end date diff --git a/src/pretix/base/pdf.py b/src/pretix/base/pdf.py index cbc529a70..fa86817c4 100644 --- a/src/pretix/base/pdf.py +++ b/src/pretix/base/pdf.py @@ -251,6 +251,11 @@ DEFAULT_VARIABLES = OrderedDict(( "editor_sample": _("20:00"), "evaluate": lambda op, order, ev: ev.get_time_from_display() }), + ("event_begin_weekday", { + "label": _("Event begin weekday"), + "editor_sample": _("Friday"), + "evaluate": lambda op, order, ev: ev.get_weekday_from_display() + }), ("event_end", { "label": _("Event end date and time"), "editor_sample": _("2017-05-31 22:00"), @@ -275,6 +280,11 @@ DEFAULT_VARIABLES = OrderedDict(( "TIME_FORMAT" ) if ev.date_to else "" }), + ("event_end_weekday", { + "label": _("Event end weekday"), + "editor_sample": _("Friday"), + "evaluate": lambda op, order, ev: ev.get_weekday_to_display() + }), ("event_admission", { "label": _("Event admission date and time"), "editor_sample": _("2017-05-31 19:00"),