X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/babe7f68fcbb8f7e73f9b62d611715ca28b4c4e6..3f961f9924a7b458e8ebb00b7135f013d52ce8d2:/apps/fileupload/views.py diff --git a/apps/fileupload/views.py b/apps/fileupload/views.py index 9425515b..e4baf026 100644 --- a/apps/fileupload/views.py +++ b/apps/fileupload/views.py @@ -4,6 +4,7 @@ from urllib import quote from django.conf import settings from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404 from django.utils.decorators import method_decorator +from django.utils.encoding import smart_bytes from django.views.decorators.vary import vary_on_headers from django.views.generic import FormView, View from .forms import UploadForm @@ -41,7 +42,7 @@ class UploadView(FormView): def get_directory(self): """Directory relative to MEDIA_ROOT. Must end with a slash.""" - return self.kwargs['path'] + return self.kwargs['path'].encode('utf-8') def breadcrumbs(self): """List of tuples (name, url) or just (name,) for breadcrumbs. @@ -74,6 +75,7 @@ class UploadView(FormView): Makes sure it's inside MEDIA_ROOT. """ + filename = smart_bytes(filename) path = os.path.abspath(os.path.join( settings.MEDIA_ROOT, self.get_directory(), @@ -99,7 +101,7 @@ class UploadView(FormView): files = [] path = self.get_safe_path() if os.path.isdir(path): - for f in os.listdir(path): + for f in sorted(os.listdir(path)): file_info = { "name": f, } @@ -137,7 +139,7 @@ class UploadView(FormView): 'url': self.get_url(f.name), 'thumbnail_url': thumbnail(self.get_directory() + f.name), 'delete_url': "%s?file=%s" % ( - request.get_full_path(), + self.request.get_full_path(), quote(f.name.encode('utf-8'))), 'delete_type': "DELETE" })