X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/1dfd391b507447d7f4a66863e4f6003979777426..9b25359a45e5498ac09b51b96919d515c1cd5d15:/apps/wiki/views.py diff --git a/apps/wiki/views.py b/apps/wiki/views.py index 7417235b..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 # @@ -130,7 +132,7 @@ def create_missing(request, name): text=form.cleaned_data['text'], ) - return http.HttpResponseRedirect(reverse("wiki_details", args=[doc.name])) + return http.HttpResponseRedirect(reverse("wiki_editor", args=[doc.name])) else: form = DocumentCreateForm(initial={ "id": name.replace(" ", "_"), @@ -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()