38 lines
990 B
Python
38 lines
990 B
Python
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
|
|
}
|
|
}
|