X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/11ffe0d7be49a89f0070444a711328f2bb56be82..9b25359a45e5498ac09b51b96919d515c1cd5d15:/apps/wiki/views.py diff --git a/apps/wiki/views.py b/apps/wiki/views.py index 1bc40617..4348cb85 100644 --- a/apps/wiki/views.py +++ b/apps/wiki/views.py @@ -17,6 +17,8 @@ from wiki.forms import DocumentTextSaveForm, DocumentTagForm, DocumentCreateForm from datetime import datetime from django.utils.encoding import smart_unicode from django.utils.translation import ugettext_lazy as _ +from django.utils.decorators import decorator_from_middleware +from django.middleware.gzip import GZipMiddleware # @@ -166,13 +168,18 @@ def upload(request): elif title in existing: error_list.append((filename, title, _('Title already used in repository.'))) else: - ok_list.append((filename, title)) + try: + zip.read(filename).decode('utf-8') # test read + ok_list.append((filename, title)) + except UnicodeDecodeError: + error_list.append((filename, title, _('File should be UTF-8 encoded.'))) titles[title] = filename + if not error_list: for filename, title in ok_list: storage.create_document( name=title, - text=zip.read(filename) + text=zip.read(filename).decode('utf-8') ) return direct_to_template(request, "wiki/document_upload.html", extra_context={ @@ -197,6 +204,7 @@ def upload(request): @never_cache @normalized_name +@decorator_from_middleware(GZipMiddleware) def text(request, name): storage = getstorage()