hotpocket/services/backend/hotpocket_backend/apps/ui/context_processors.py
Tomek Wójcik 2e8b8d7330 BTHLABS-60: Appearance settings
Co-authored-by: Tomek Wójcik <labs@tomekwojcik.pl>
Co-committed-by: Tomek Wójcik <labs@tomekwojcik.pl>
2025-10-07 04:42:58 +00:00

79 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import annotations
from django.http import HttpRequest
from hotpocket_backend._meta import version as backend_version
from hotpocket_backend.apps.core.conf import settings
from hotpocket_backend.apps.core.context import get_request_id
def site_title(request: HttpRequest) -> dict:
return {
'SITE_TITLE': settings.SITE_TITLE,
}
def image_tag(request: HttpRequest) -> dict:
return {
'IMAGE_ID': settings.IMAGE_ID,
}
def request_id(request: HttpRequest) -> dict:
return {
'REQUEST_ID': get_request_id(),
}
def htmx(request: HttpRequest) -> dict:
return {
'HTMX': (
request.htmx
if hasattr(request, 'htmx')
else False
),
}
def debug(request: HttpRequest) -> dict:
return {
'DEBUG': settings.DEBUG,
}
def version(request: HttpRequest) -> dict:
return {
'VERSION': backend_version,
}
def appearance_settings(request: HttpRequest) -> dict:
theme = 'hotpocket'
result = {
'theme': theme,
'light_mode': False,
'theme_css': 'ui/css/bootstrap-hotpocket.min.css',
}
if request.user.is_anonymous is False:
theme = request.user.settings.get('theme', 'hotpocket')
result.update({
'theme': theme,
'light_mode': request.user.settings['light_mode'],
})
match theme:
case 'bootstrap':
result['theme_css'] = 'ui/css/bootstrap.min.css'
case 'cosmo':
result['theme_css'] = 'ui/css/cosmo.min.css'
case 'solar':
result['theme_css'] = 'ui/css/solar.min.css'
return {
'APPEARANCE_SETTINGS': result,
}