diff --git a/aleksis/core/util/core_helpers.py b/aleksis/core/util/core_helpers.py index ec114c5c07ba8fdc7e05ac85faed200d19b506bd..5eb24736d6dadb86927ea6834eabffae4e2267b5 100644 --- a/aleksis/core/util/core_helpers.py +++ b/aleksis/core/util/core_helpers.py @@ -125,14 +125,13 @@ def celery_optional(orig: Callable) -> Callable: return orig -def path_and_rename(instance, filename): - upload_to = 'files' - ext = filename.split('.')[-1].lower() - # get filename - if instance.pk: - filename = '{}.{}'.format(instance.pk, ext) - else: - # set filename as random string - filename = '{}.{}'.format(uuid4().hex, ext) +def path_and_rename(instance, filename: str, upload_to: str = "files") -> str: + """ Updates path of an uploaded file while using in Django FileField """ + + _, ext = os.path.splitext(filename) + + # set filename as random string + new_filename = '{}.{}'.format(uuid4().hex, ext) + # return the whole path to the file - return os.path.join(upload_to, filename) + return os.path.join(upload_to, new_filename)