X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/5eeb9dace6068f83e2b70b5222cfab0c0a5e71eb..1a42c84e4ffc774f160ab401f5914d473bff9498:/apps/catalogue/utils.py?ds=sidebyside diff --git a/apps/catalogue/utils.py b/apps/catalogue/utils.py index 29f40d16b..bda7e0475 100644 --- a/apps/catalogue/utils.py +++ b/apps/catalogue/utils.py @@ -44,6 +44,25 @@ def split_tags(tags): return result +def get_dynamic_path(media, filename, ext=None, maxlen=100): + from slughifi import slughifi + + # how to put related book's slug here? + if not ext: + # BookMedia case + ext = media.formats[media.type].ext + if media is None or not media.name: + name = slughifi(filename.split(".")[0]) + else: + name = slughifi(media.name) + return 'book/%s/%s.%s' % (ext, name[:maxlen-len('book/%s/.%s' % (ext, ext))-4], ext) + + +# TODO: why is this hard-coded ? +def book_upload_path(ext=None, maxlen=100): + return lambda *args: get_dynamic_path(*args, ext=ext, maxlen=maxlen) + + class ExistingFile(UploadedFile): def __init__(self, path, *args, **kwargs):