Escaping file names properly
[redakcja.git] / apps / wiki / views.py
index 4b825e5..46da212 100644 (file)
@@ -1,6 +1,7 @@
 from datetime import datetime
 import os
 import logging
+import urllib
 
 from django.conf import settings
 from django.core.urlresolvers import reverse
@@ -12,8 +13,7 @@ from django.utils.encoding import smart_unicode
 from django.utils.formats import localize
 from django.utils.translation import ugettext as _
 from django.views.decorators.http import require_POST, require_GET
-from django.views.generic.simple import direct_to_template
-from django.shortcuts import get_object_or_404
+from django.shortcuts import get_object_or_404, render
 
 from catalogue.models import Book, Chunk
 import nice_diff
@@ -62,7 +62,7 @@ def editor(request, slug, chunk=None, template_name='wiki/document_details.html'
         del last_books[oldest_key]
     request.session['wiki_last_books'] = last_books
 
-    return direct_to_template(request, template_name, extra_context={
+    return render(request, template_name, {
         'chunk': chunk,
         'forms': {
             "text_save": forms.DocumentTextSaveForm(user=request.user, prefix="textsave"),
@@ -96,7 +96,7 @@ def editor_readonly(request, slug, chunk=None, template_name='wiki/document_deta
         del last_books[oldest_key]
     request.session['wiki_last_books'] = last_books
 
-    return direct_to_template(request, template_name, extra_context={
+    return render(request, template_name, {
         'chunk': chunk,
         'revision': revision,
         'readonly': True,
@@ -211,7 +211,7 @@ def gallery(request, directory):
                     smart_unicode(directory))
 
         def map_to_url(filename):
-            return "%s/%s" % (base_url, smart_unicode(filename))
+            return urllib.quote("%s/%s" % (base_url, smart_unicode(filename)))
 
         def is_image(filename):
             return os.path.splitext(f)[1].lower() in (u'.jpg', u'.jpeg', u'.png')