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
#
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={
@never_cache
@normalized_name
+@decorator_from_middleware(GZipMiddleware)
def text(request, name):
storage = getstorage()