Librarian in regular requirements.
[redakcja.git] / apps / wiki / views.py
index f959426..e1ef6ae 100644 (file)
@@ -1,6 +1,8 @@
+# -*- coding: utf-8 -*-
 from datetime import datetime
 import os
 import logging
 from datetime import datetime
 import os
 import logging
+from time import mktime
 import urllib
 
 from django.conf import settings
 import urllib
 
 from django.conf import settings
@@ -52,8 +54,8 @@ def editor(request, slug, chunk=None, template_name='wiki/document_details.html'
 
     access_time = datetime.now()
     last_books = request.session.get("wiki_last_books", {})
 
     access_time = datetime.now()
     last_books = request.session.get("wiki_last_books", {})
-    last_books[slug, chunk.slug] = {
-        'time': access_time,
+    last_books[reverse(editor, args=[chunk.book.slug, chunk.slug])] = {
+        'time': mktime(access_time.timetuple()),
         'title': chunk.pretty_name(),
         }
 
         'title': chunk.pretty_name(),
         }
 
@@ -87,7 +89,7 @@ def editor_readonly(request, slug, chunk=None, template_name='wiki/document_deta
     access_time = datetime.now()
     last_books = request.session.get("wiki_last_books", {})
     last_books[slug, chunk.slug] = {
     access_time = datetime.now()
     last_books = request.session.get("wiki_last_books", {})
     last_books[slug, chunk.slug] = {
-        'time': access_time,
+        'time': mktime(access_time.timetuple()),
         'title': chunk.book.title,
         }
 
         'title': chunk.book.title,
         }
 
@@ -211,15 +213,17 @@ def gallery(request, directory):
                     smart_unicode(directory))
 
         def map_to_url(filename):
                     smart_unicode(directory))
 
         def map_to_url(filename):
-            return urllib.quote("%s/%s" % (base_url, smart_unicode(filename)))
+            return urllib.quote(("%s/%s" % (base_url, smart_unicode(filename))).encode('utf-8'))
 
         def is_image(filename):
 
         def is_image(filename):
-            return os.path.splitext(f)[1].lower() in (u'.jpg', u'.jpeg', u'.png')
+            return os.path.splitext(filename)[1].lower() in (u'.jpg', u'.jpeg', u'.png')
 
         images = [map_to_url(f) for f in map(smart_unicode, os.listdir(base_dir)) if is_image(f)]
         images.sort()
 
 
         images = [map_to_url(f) for f in map(smart_unicode, os.listdir(base_dir)) if is_image(f)]
         images.sort()
 
-        if not request.user.is_authenticated():
+        books = Book.objects.filter(gallery=directory)
+
+        if not all(book.public for book in books) and not request.user.is_authenticated():
             return HttpResponseForbidden("Not authorized.")
 
         return JSONResponse(images)
             return HttpResponseForbidden("Not authorized.")
 
         return JSONResponse(images)