From ed20ae02b448435515cd414f8b8f077df6056faf Mon Sep 17 00:00:00 2001 From: Ilona Podliashanyk Date: Mon, 11 Mar 2024 15:42:13 +0100 Subject: [PATCH 1/3] Show info about configured timezone in footer --- src/howitz/config/models.py | 5 +++-- src/howitz/endpoints.py | 17 ++++++++++++++++- .../templates/components/footer/footer.html | 9 +++++++-- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/howitz/config/models.py b/src/howitz/config/models.py index 2b16ec7a..e52d5542 100644 --- a/src/howitz/config/models.py +++ b/src/howitz/config/models.py @@ -5,6 +5,7 @@ DEFAULT_STORAGE = "./howitz.sqlite3" +DEFAULT_TIMEZONE = 'UTC' class ServerConfig(BaseModel): @@ -28,10 +29,10 @@ class DevStorageConfig(StorageConfig): class HowitzConfig(ServerConfig, StorageConfig): devmode: bool = Literal[False] poll_interval: int = 60 - timezone: str = 'UTC' + timezone: str = DEFAULT_TIMEZONE class DevHowitzConfig(DevServerConfig, DevStorageConfig): devmode: bool = Literal[True] poll_interval: int = 30 - timezone: str = 'UTC' + timezone: str = DEFAULT_TIMEZONE diff --git a/src/howitz/endpoints.py b/src/howitz/endpoints.py index dc3e81eb..6ba1da6c 100644 --- a/src/howitz/endpoints.py +++ b/src/howitz/endpoints.py @@ -23,6 +23,8 @@ from zinolib.ritz import NotConnectedError, AuthenticationError from howitz.users.utils import authenticate_user + +from .config.models import DEFAULT_TIMEZONE from .utils import login_check, date_str_without_timezone main = Blueprint('main', __name__) @@ -262,7 +264,20 @@ def get_event_details(id): @main.route('/events') @login_check() def index(): - return render_template('/views/events.html', poll_interval=current_app.howitz_config["poll_interval"]) + return render_template('/views/events.html') + + +@main.get('/footer.html') +@login_check() +def footer(): + tz = current_app.howitz_config["timezone"] # Get raw string from config. Accepted values are 'UTC' or 'LOCAL'. + if tz == 'LOCAL': # Change to a specific timezone name if 'LOCAL' + tz = datetime.now(timezone.utc).astimezone().tzinfo + elif not tz == DEFAULT_TIMEZONE: # Fall back to default if invalid value is provided + tz = f"{DEFAULT_TIMEZONE} (default)" + + return render_template('/components/footer/footer.html', poll_interval=current_app.howitz_config["poll_interval"], + timezone=tz) @main.route('/login') diff --git a/src/howitz/templates/components/footer/footer.html b/src/howitz/templates/components/footer/footer.html index 206eb023..c5f6b2d1 100644 --- a/src/howitz/templates/components/footer/footer.html +++ b/src/howitz/templates/components/footer/footer.html @@ -1,5 +1,10 @@ -