context_processors.py 720 B

123456789101112131415161718192021222324
  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. if css.source_needs_building:
  15. if css.build_file:
  16. styles.append(css.build_file.url)
  17. else:
  18. styles.append(css.source_file.url)
  19. return {"theme": {"include_defaults": include_defaults, "styles": styles}}