from django.utils.translation import gettext_lazy as _ from . import menu, preferences THEME_OPTIONS = ( ("light", _("Light")), ("dark", _("Dark")), ("system", _("System")), ) LANGUAGE_OPTIONS = (("de", "Deutsch"), ("en", "English")) FORM_OPTIONS = (("sie", "Sie"), ("du", "du")) def initials(name: str) -> str: words = [w for w in name.split() if w] if not words: return "?" letters = words[0][0] + (words[-1][0] if len(words) > 1 else "") return letters.upper() def shell(request): """Menu, preferences and the values the base layout needs.""" prefs = getattr(request, "preferences", preferences.Preferences()) portal_user = getattr(request, "portal_user", None) context = { "preferences": prefs, "html_lang": prefs.language, "theme_options": THEME_OPTIONS, "language_options": LANGUAGE_OPTIONS, "form_options": FORM_OPTIONS, "portal_user": portal_user, } if portal_user is not None: context["menu_groups"] = menu.for_user(portal_user, request.path) context["initials"] = initials(portal_user.display_name) return context