from django.conf import settings from django.apps import apps from users.models import UserSettings from pathlib import Path def extra_context(request): if not request.user.is_anonymous: user_settings, __ = UserSettings.objects.get_or_create(user=request.user) else: user_settings = None components = [] for app in apps.get_app_configs(): p = Path(settings.BASE_DIR) / app.name / "templates/components/" if p.exists(): for path in p.iterdir(): components.append(path.name) return { "user_settings": user_settings, "templates": { component: f"components/{component}/template.html" for component in components }, "components": { component: { "path": f"components/{component}/vue.js", "flat_name": component.replace("-", "_").lower(), } for component in components } }