uploadto.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from django.utils.crypto import get_random_string
  2. def generate_theme_dirname():
  3. return get_random_string(8)
  4. def upload_css_source_to(instance, filename):
  5. add_hash_to_filename(instance.source_hash, filename)
  6. return "themes/%s/css/%s" % (instance.theme.dirname, filename)
  7. def upload_css_to(instance, filename):
  8. add_hash_to_filename(instance.hash, filename)
  9. return "themes/%s/css/%s" % (instance.theme.dirname, filename)
  10. def upload_font_to(instance, filename):
  11. add_hash_to_filename(instance.hash, filename)
  12. return "themes/%s/font/%s" % (instance.theme.dirname, filename)
  13. def upload_image_to(instance, filename):
  14. add_hash_to_filename(instance.hash, filename)
  15. return "themes/%s/media/%s" % (instance.theme.dirname, filename)
  16. def upload_image_thumbnail_to(instance, filename):
  17. return "themes/%s/media/%s" % (instance.theme.dirname, filename)
  18. def add_hash_to_filename(hash, filename):
  19. if ".%s." % hash in filename:
  20. return filename
  21. extension_start = filename.rfind(".")
  22. return "%s.%s%s" % (filename[:extension_start], hash, filename[extension_start:])