uploadto.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. from django.utils.crypto import get_random_string
  2. def generate_theme_dirname():
  3. return get_random_string(8)
  4. def upload_source_css_to(instance, filename):
  5. filename = add_hash_to_filename(instance.source_hash, filename)
  6. return "themes/%s/css/%s" % (instance.theme.dirname, filename)
  7. def upload_build_css_to(instance, filename):
  8. filename = add_hash_to_filename(instance.build_hash, filename)
  9. return "themes/%s/css/%s" % (instance.theme.dirname, filename)
  10. def upload_media_to(instance, filename):
  11. filename = add_hash_to_filename(instance.hash, filename)
  12. return "themes/%s/media/%s" % (instance.theme.dirname, filename)
  13. def upload_media_thumbnail_to(instance, filename):
  14. return "themes/%s/media/%s" % (instance.theme.dirname, filename)
  15. def add_hash_to_filename(hash, filename): # pylint: disable=redefined-builtin
  16. if ".%s." % hash in filename:
  17. return filename
  18. extension_start = filename.rfind(".")
  19. return "%s.%s%s" % (filename[:extension_start], hash, filename[extension_start:])