X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/05f67adb27390c7a9cf214e83550d3bbca88c8f2..0cd571520ee3f3a1dfaed2f5340961e39a941ad1:/apps/cover/views.py diff --git a/apps/cover/views.py b/apps/cover/views.py index 0c29209c..bbcf28e5 100644 --- a/apps/cover/views.py +++ b/apps/cover/views.py @@ -15,7 +15,6 @@ from catalogue.models import Chunk from cover.models import Image from cover import forms - 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. """ - import Image - from librarian.cover import WLCover + from PIL import Image + from librarian.cover import make_cover from librarian.dcparser import BookInfo chunk = Chunk.get(book, chunk) @@ -45,10 +44,10 @@ 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")) - cover = WLCover(info) - response = HttpResponse(mimetype=cover.mime_type()) - image = cover.image().resize(PREVIEW_SIZE, Image.ANTIALIAS) - image.save(response, cover.format) + cover = make_cover(info) + response = HttpResponse(content_type=cover.mime_type()) + img = cover.image().resize(PREVIEW_SIZE, Image.ANTIALIAS) + img.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 - import Image + from PIL import Image from os import makedirs from lxml import etree - from librarian.cover import WLCover + from librarian.cover import make_cover 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() - cover = WLCover(info) + cover = make_cover(info) cover_dir = 'cover/preview' try: @@ -76,39 +75,42 @@ def preview_from_xml(request): except OSError: pass fname = os.path.join(cover_dir, "%s.%s" % (coverid, cover.ext())) - image = cover.image().resize(PREVIEW_SIZE, Image.ANTIALIAS) - image.save(os.path.join(settings.MEDIA_ROOT, fname)) + img = cover.image().resize(PREVIEW_SIZE, Image.ANTIALIAS) + img.save(os.path.join(settings.MEDIA_ROOT, fname)) return HttpResponse(os.path.join(settings.MEDIA_URL, fname)) @active_tab('cover') def image(request, pk): - image = get_object_or_404(Image, pk=pk) + img = get_object_or_404(Image, pk=pk) 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=img) if form.is_valid(): form.save() - return HttpResponseRedirect(image.get_absolute_url()) + return HttpResponseRedirect(img.get_absolute_url()) else: - form = forms.ImageEditForm(instance=image) + form = forms.ImageEditForm(instance=img) editable = True else: - form = forms.ReadonlyImageEditForm(instance=image) + form = forms.ReadonlyImageEditForm(instance=img) editable = False return render(request, "cover/image_detail.html", { - "object": image, + "object": Image.objects.get(id=img.id), "form": form, "editable": editable, }) +def image_file(request, pk): + img = get_object_or_404(Image, pk=pk) + return HttpResponseRedirect(img.file.url) + + @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'), @@ -125,7 +127,7 @@ def add_image(request): 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())