From 527d9642bc3bfb940c07b1f93d4594c37691fff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=BCller?= Date: Thu, 20 Apr 2023 03:00:41 +0200 Subject: [PATCH] Fix date/time localization --- docker-compose.yml.example | 2 ++ fabcal/routers/__init__.py | 4 ++++ fabcal/routers/frontend.py | 10 ---------- templates/sidebar/includes/events-list.html | 10 +++++----- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/docker-compose.yml.example b/docker-compose.yml.example index e7a93da..3b983cd 100644 --- a/docker-compose.yml.example +++ b/docker-compose.yml.example @@ -8,6 +8,8 @@ services: - 5000:5000 environment: - FABCAL_CACHE_EXPIRE=120 + - LANG=de + - LC_ALL=de_DE.UTF-8 volumes: - ./config.yml:/app/config.yml:ro # use the line below when running this behind reverse proxy (only if it sets the proxy headers, though) diff --git a/fabcal/routers/__init__.py b/fabcal/routers/__init__.py index 75ad936..a645d33 100644 --- a/fabcal/routers/__init__.py +++ b/fabcal/routers/__init__.py @@ -1,5 +1,6 @@ import re +from babel.dates import format_datetime from jinja2 import pass_eval_context from markupsafe import Markup, escape from starlette.templating import Jinja2Templates @@ -7,6 +8,9 @@ from starlette.templating import Jinja2Templates templates = Jinja2Templates(directory="templates") +# custom filters +templates.env.filters["format_datetime"] = lambda value, format: format_datetime(value, format) #, locale="de_DE") + @pass_eval_context def nl2br(eval_ctx, value): diff --git a/fabcal/routers/frontend.py b/fabcal/routers/frontend.py index cae7597..eb21830 100644 --- a/fabcal/routers/frontend.py +++ b/fabcal/routers/frontend.py @@ -18,19 +18,9 @@ async def generate_response(request: Request, template_name: str, **additional_c grouped_events = list(group_by_date(events).items()) - # couple of helpers - def localized_abbreviated_month(dt: datetime): - return babel.dates.format_datetime(dt, format="%b", locale="de_DE") - - # couple of helpers - def localized_abbreviated_weekday(dt: datetime): - return babel.dates.format_datetime(dt, format="%b", locale="de_DE") - context = { "request": request, "grouped_events": grouped_events, - "localized_abbreviated_month": localized_abbreviated_month, - "localized_abbreviated_weekday": localized_abbreviated_weekday, } context.update(additional_context) diff --git a/templates/sidebar/includes/events-list.html b/templates/sidebar/includes/events-list.html index 151aa05..278100a 100644 --- a/templates/sidebar/includes/events-list.html +++ b/templates/sidebar/includes/events-list.html @@ -6,22 +6,22 @@
- {{ start_date.strftime("%b") }} + {{ start_date | format_datetime("MMM") }}
- {{ start_date.strftime("%d") }} + {{ start_date | format_datetime("d") }}
- {{ start_date.strftime("%a") }} + {{ start_date | format_datetime("EEE") }}
{% for event in events %}
-
{{ event.start.strftime("%H:%M") }}
+
{{ event.start | format_datetime("HH:mm") }}
-
{{ event.end.strftime("%H:%M") }}
+
{{ event.end | format_datetime("HH:mm") }}
{% if event.description or event.location %}