check cover image dimensions in forms
[redakcja.git] / apps / cover / views.py
index 0c29209..25033c1 100644 (file)
@@ -15,7 +15,6 @@ from catalogue.models import Chunk
 from cover.models import Image
 from cover import forms
 
 from cover.models import Image
 from cover import forms
 
-
 PREVIEW_SIZE = (216, 300)
 
 
 PREVIEW_SIZE = (216, 300)
 
 
@@ -25,8 +24,8 @@ def preview(request, book, chunk=None, rev=None):
     If chunk and rev number are given, use version from given revision.
     If rev is not given, use publishable version.
     """
     If chunk and rev number are given, use version from given revision.
     If rev is not given, use publishable version.
     """
-    import Image
-    from librarian.cover import WLCover
+    from PIL import Image
+    from librarian.cover import DefaultEbookCover
     from librarian.dcparser import BookInfo
 
     chunk = Chunk.get(book, chunk)
     from librarian.dcparser import BookInfo
 
     chunk = Chunk.get(book, chunk)
@@ -45,8 +44,8 @@ def preview(request, book, chunk=None, rev=None):
         info = BookInfo.from_string(xml)
     except:
         return HttpResponseRedirect(os.path.join(settings.STATIC_URL, "img/sample_cover.png"))
         info = BookInfo.from_string(xml)
     except:
         return HttpResponseRedirect(os.path.join(settings.STATIC_URL, "img/sample_cover.png"))
-    cover = WLCover(info)
-    response = HttpResponse(mimetype=cover.mime_type())
+    cover = DefaultEbookCover(info)
+    response = HttpResponse(content_type=cover.mime_type())
     image = cover.image().resize(PREVIEW_SIZE, Image.ANTIALIAS)
     image.save(response, cover.format)
     return response
     image = cover.image().resize(PREVIEW_SIZE, Image.ANTIALIAS)
     image.save(response, cover.format)
     return response
@@ -56,10 +55,10 @@ def preview(request, book, chunk=None, rev=None):
 @require_POST
 def preview_from_xml(request):
     from hashlib import sha1
 @require_POST
 def preview_from_xml(request):
     from hashlib import sha1
-    import Image
+    from PIL import Image
     from os import makedirs
     from lxml import etree
     from os import makedirs
     from lxml import etree
-    from librarian.cover import WLCover
+    from librarian.cover import DefaultEbookCover
     from librarian.dcparser import BookInfo
 
     xml = request.POST['xml']
     from librarian.dcparser import BookInfo
 
     xml = request.POST['xml']
@@ -68,7 +67,7 @@ def preview_from_xml(request):
     except:
         return HttpResponse(os.path.join(settings.STATIC_URL, "img/sample_cover.png"))
     coverid = sha1(etree.tostring(info.to_etree())).hexdigest()
     except:
         return HttpResponse(os.path.join(settings.STATIC_URL, "img/sample_cover.png"))
     coverid = sha1(etree.tostring(info.to_etree())).hexdigest()
-    cover = WLCover(info)
+    cover = DefaultEbookCover(info)
 
     cover_dir = 'cover/preview'
     try:
 
     cover_dir = 'cover/preview'
     try:
@@ -87,7 +86,7 @@ def image(request, pk):
 
     if request.user.has_perm('cover.change_image'):
         if request.method == "POST":
 
     if request.user.has_perm('cover.change_image'):
         if request.method == "POST":
-            form = forms.ImageEditForm(request.POST, instance=image)
+            form = forms.ImageEditForm(request.POST, request.FILES, instance=image)
             if form.is_valid():
                 form.save()
                 return HttpResponseRedirect(image.get_absolute_url())
             if form.is_valid():
                 form.save()
                 return HttpResponseRedirect(image.get_absolute_url())
@@ -99,7 +98,7 @@ def image(request, pk):
         editable = False
 
     return render(request, "cover/image_detail.html", {
         editable = False
 
     return render(request, "cover/image_detail.html", {
-        "object": image,
+        "object": Image.objects.get(id=image.id),
         "form": form,
         "editable": editable,
     })
         "form": form,
         "editable": editable,
     })
@@ -107,8 +106,6 @@ def image(request, pk):
 
 @active_tab('cover')
 def image_list(request):
 
 @active_tab('cover')
 def image_list(request):
-    objects = Image.objects.all()
-    enable_add = request.user.has_perm('cover.add_image')
     return render(request, "cover/image_list.html", {
         'object_list': Image.objects.all(),
         'can_add': request.user.has_perm('cover.add_image'),
     return render(request, "cover/image_list.html", {
         'object_list': Image.objects.all(),
         'can_add': request.user.has_perm('cover.add_image'),
@@ -125,7 +122,7 @@ def add_image(request):
             if ff.is_valid():
                 form = forms.ImageAddForm(ff.cleaned_data)
         else:
             if ff.is_valid():
                 form = forms.ImageAddForm(ff.cleaned_data)
         else:
-            form = forms.ImageAddForm(request.POST)
+            form = forms.ImageAddForm(request.POST, request.FILES)
             if form.is_valid():
                 obj = form.save()
                 return HttpResponseRedirect(obj.get_absolute_url())
             if form.is_valid():
                 obj = form.save()
                 return HttpResponseRedirect(obj.get_absolute_url())