X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/d3a175f9e18a22afc425afb669a77c79d128df74..58d4aaf62aad7d19d2fb26176afd083c8f75f82a:/apps/wiki/views.py diff --git a/apps/wiki/views.py b/apps/wiki/views.py index 7417235b..7d60341c 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() @@ -313,6 +321,17 @@ def diff(request, name): docB.plain_text.splitlines(), context=3)) +@never_cache +@normalized_name +def revision(request, name): + storage = getstorage() + + try: + return http.HttpResponse(str(storage.doc_meta(name)['revision'])) + except DocumentNotFound: + raise http.Http404 + + @never_cache @normalized_name def history(request, name):