activetheme.py 715 B

123456789101112131415161718192021222324
  1. from .models import Theme
  2. def get_active_theme():
  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. elif 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 {"include_defaults": include_defaults, "styles": styles}