context_processors.py 589 B

123456789101112131415161718192021
  1. from .models import Theme
  2. def theme(request):
  3. active_theme = Theme.objects.get(is_active=True)
  4. themes = active_theme.get_ancestors(include_self=True)
  5. themes = themes.prefetch_related("css")
  6. include_defaults = False
  7. styles = []
  8. for theme in themes:
  9. if theme.is_default:
  10. include_defaults = True
  11. for css in theme.css.all():
  12. if css.url:
  13. styles.append(css.url)
  14. else:
  15. styles.append(css.source_file.url)
  16. return {"theme": {"include_defaults": include_defaults, "styles": styles}}