Source code for ferrosoft.apps.ferrobase.context_processors
"""Django template context processors for ferrobase."""
from django.conf import settings
from ferrosoft.apps.ferrobase.models import ColorThemeDiscovery
[docs]
def ferrobase(request):
"""Inject ferrobase-wide variables into every Django template context.
Args:
request: The current HTTP request.
Returns:
dict: Context variables covering the active tenant, colour theme,
contact email, map config, debug flag, login URL, and subscription
plan URL.
"""
return {
"FERROBASE_APP_META": getattr(request, "APP_META", None),
"FERROBASE_CONTACT_EMAIL": getattr(
settings, "FERROBASE_CONTACT_EMAIL", "noreply@localhost"
),
"FERROBASE_EMAIL_FOOTER": getattr(settings, "EMAIL_FOOTER", []),
"FERROBASE_CURRENT_TENANT": getattr(request, "current_tenant", None),
"FERROBASE_LOGIN_URL": getattr(settings, "LOGIN_URL", None),
"FERROBASE_HELP_BASE_URL": getattr(settings, "FERROBASE_HELP_BASE_URL", None),
"FERROBASE_DEBUG": settings.DEBUG,
"FERROBASE_MAP_CONFIG": getattr(settings, "FERROBASE_MAP_CONFIG", {}),
"FERROBASE_COLOR_THEME": ColorThemeDiscovery.guess(request),
"FERROBASE_COLOR_THEME_USER": ColorThemeDiscovery.user_theme(request),
"FERROBASE_SUBSCRIPTION_PLAN_URL": getattr(
settings, "FERROBASE_SUBSCRIPTION_PLAN_URL", None
),
}