From 1fce23d3fd0379ecd5736747b760efefd25d899d Mon Sep 17 00:00:00 2001 From: ske087 Date: Fri, 28 Nov 2025 15:22:42 +0200 Subject: [PATCH] Fix timezone display: Convert UTC to local time in players list --- app/app.py | 29 +++++++++++++++++++++++++ app/templates/players/players_list.html | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/app/app.py b/app/app.py index db8ce8a..42e3e51 100644 --- a/app/app.py +++ b/app/app.py @@ -52,6 +52,7 @@ def create_app(config_name=None): register_error_handlers(app) register_commands(app) register_context_processors(app) + register_template_filters(app) return app @@ -181,6 +182,34 @@ def register_context_processors(app): return {'theme': theme} +def register_template_filters(app): + """Register custom Jinja2 template filters""" + from datetime import datetime, timezone + + @app.template_filter('localtime') + def localtime_filter(dt, format='%Y-%m-%d %H:%M'): + """Convert UTC datetime to local time and format it. + + Args: + dt: datetime object in UTC + format: strftime format string + + Returns: + Formatted datetime string in local timezone + """ + if dt is None: + return '' + + # If datetime is naive (no timezone), assume it's UTC + if dt.tzinfo is None: + dt = dt.replace(tzinfo=timezone.utc) + + # Convert to local time + local_dt = dt.astimezone() + + return local_dt.strftime(format) + + # For backwards compatibility and direct running if __name__ == '__main__': app = create_app() diff --git a/app/templates/players/players_list.html b/app/templates/players/players_list.html index 4f63d5d..7d4e537 100644 --- a/app/templates/players/players_list.html +++ b/app/templates/players/players_list.html @@ -170,7 +170,7 @@ {% if player.last_seen %} - {{ player.last_seen.strftime('%Y-%m-%d %H:%M') }} + {{ player.last_seen | localtime }} {% else %} Never {% endif %}