From 89817340c9a3d56106d9eb6af0a04db93ffd753a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lera=20Elvo=C3=A9?= Date: Sun, 17 Aug 2025 01:36:55 +0300 Subject: [PATCH] add barebones theme switcher --- app/__init__.py | 3 ++- app/routes/users.py | 12 ++++++++++++ app/templates/base.html | 2 +- app/templates/users/settings.html | 5 +++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 2412e34..8bfd139 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -2,7 +2,7 @@ from flask import Flask, session from dotenv import load_dotenv from .models import Avatars, Users, PostHistory, Posts from .auth import digest -from .routes.users import is_logged_in, get_active_user +from .routes.users import is_logged_in, get_active_user, get_prefers_theme from .routes.threads import get_post_url from .constants import ( PermissionLevel, permission_level_string, @@ -140,6 +140,7 @@ def create_app(): def inject_funcs(): return { 'get_post_url': get_post_url, + 'get_prefers_theme': get_prefers_theme, } @app.template_filter("ts_datetime") diff --git a/app/routes/users.py b/app/routes/users.py index 2adddf0..80f8073 100644 --- a/app/routes/users.py +++ b/app/routes/users.py @@ -165,6 +165,12 @@ def admin_only(*args, **kwargs): return decorator +def get_prefers_theme(): + if not 'theme' in session: + return 'style' + + return session['theme'] + @bp.get("/log_in") @redirect_if_logged_in(".page", username = lambda: get_active_user().username) def log_in(): @@ -288,6 +294,12 @@ def settings_form(username): # we silently ignore the passed username # and grab the correct user from the session user = get_active_user() + theme = request.form.get('theme', default='default') + if theme == 'default': + if 'theme' in session: + session.pop('theme') + else: + session['theme'] = theme topic_sort_by = request.form.get('topic_sort_by', default='activity') if topic_sort_by == 'activity' or topic_sort_by == 'thread': sort_by = session['sort_by'] = topic_sort_by diff --git a/app/templates/base.html b/app/templates/base.html index 054d067..d8e1bb3 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -8,7 +8,7 @@ {% else %} {{config.SITE_NAME}} {% endif %} - + diff --git a/app/templates/users/settings.html b/app/templates/users/settings.html index 40a885f..8ab9e8b 100644 --- a/app/templates/users/settings.html +++ b/app/templates/users/settings.html @@ -15,6 +15,11 @@
+ +