X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/1dfd391b507447d7f4a66863e4f6003979777426..66c6a11da0b0128e1693582dbbb8b375fd4aedb9:/apps/wiki/views.py?ds=sidebyside

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()