diff --git a/src/core/locale/de/LC_MESSAGES/django.po b/src/core/locale/de/LC_MESSAGES/django.po index 2590c45300c4711618eb412bdc2876a9566d6292..c392c9da1a197f5fe2d341ec22000def4f12ade0 100644 --- a/src/core/locale/de/LC_MESSAGES/django.po +++ b/src/core/locale/de/LC_MESSAGES/django.po @@ -2466,6 +2466,9 @@ msgstr "" msgid "Activate your %(safe_site_name)s account" msgstr "Aktiviere dein %(safe_site_name)s Konto" +msgid "Conference-day" +msgstr "Tag" + #, python-format msgid "Validation__error_file_size_MB_exceeded %(max_size)d" msgstr "Die Datei darf nicht größer als %(max_size)dMb sein" diff --git a/src/core/locale/en/LC_MESSAGES/django.po b/src/core/locale/en/LC_MESSAGES/django.po index 608a666a79bb31b449a9466da58b8defb0ad87f2..95eeb5c3b21d076de54cc07009669a76e8f1bb63 100644 --- a/src/core/locale/en/LC_MESSAGES/django.po +++ b/src/core/locale/en/LC_MESSAGES/django.po @@ -2448,6 +2448,9 @@ msgstr "" msgid "Activate your %(safe_site_name)s account" msgstr "" +msgid "Conference-day" +msgstr "day" + #, python-format msgid "Validation__error_file_size_MB_exceeded %(max_size)d" msgstr "You aren't allowed to upload a file larger than %(max_size)dMb" diff --git a/src/core/templatetags/conference_time.py b/src/core/templatetags/conference_time.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8bac3e6a1e157f85e5bbbbba6b363ece691e1efa 100644 --- a/src/core/templatetags/conference_time.py +++ b/src/core/templatetags/conference_time.py @@ -0,0 +1,29 @@ +from datetime import datetime + +from django.template.defaulttags import register +from django.utils import timezone +from django.utils.translation import gettext_lazy as _ + +from core.models import Conference + + +@register.filter +def conference_time(timestamp: datetime, conf: Conference): + if timestamp is None: + return '' + + # derive conference day from given timestamp + day = conf.get_conference_day(timestamp) + day_i18n = _('Conference-day') + + # convert timestamp to current timezone + local_ts = timezone.localtime(timestamp) + + # convert midnight to 24:00 + h = local_ts.hour + if h == 0: + h = 24 + m = local_ts.minute + + # return formatted string + return f'{day_i18n} {day} @ {h:02d}:{m:02d}' diff --git a/src/plainui/jinja2.py b/src/plainui/jinja2.py index 2677ce6ce025e927519f7457abe8663890209993..7365c3a327e7084da0485e6ecd2c0b994b94e0ca 100644 --- a/src/plainui/jinja2.py +++ b/src/plainui/jinja2.py @@ -22,6 +22,7 @@ from modeltranslation.fields import build_localized_fieldname from modeltranslation.settings import AVAILABLE_LANGUAGES from core.models import PlatformUser, UserBadge +from core.templatetags.conference_time import conference_time from core.templatetags.hub_absolute import hub_absolute, hub_absolute_self from core.templatetags.update_parameters import update_parameters @@ -302,6 +303,7 @@ def environment(**options): 'link_icon': link_icon, } ) + env.filters['conference_time'] = conference_time env.filters['strftdelta'] = custom_timedelta env.filters['strftdelta_short'] = custom_timedelta_short env.filters['strftimehm'] = custom_strftimehm