fnp
/
redakcja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix rev check
[redakcja.git]
/
apps
/
wiki
/
views.py
diff --git
a/apps/wiki/views.py
b/apps/wiki/views.py
index
1bc4061
..
7d60341
100644
(file)
--- 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 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:
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
titles[title] = filename
+
if not error_list:
for filename, title in ok_list:
storage.create_document(
name=title,
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={
)
return direct_to_template(request, "wiki/document_upload.html", extra_context={
@@
-197,6
+204,7
@@
def upload(request):
@never_cache
@normalized_name
@never_cache
@normalized_name
+@decorator_from_middleware(GZipMiddleware)
def text(request, name):
storage = getstorage()
def text(request, name):
storage = getstorage()
@@
-313,6
+321,17
@@
def diff(request, name):
docB.plain_text.splitlines(), context=3))
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):
@never_cache
@normalized_name
def history(request, name):