Merge master into img-playground. Image support with new management features. Missing...
[redakcja.git] / apps / catalogue / views.py
index 3c0e70f..3c37ee6 100644 (file)
@@ -40,6 +40,12 @@ def document_list(request):
     return render(request, 'catalogue/document_list.html')
 
 
+@active_tab('images')
+@never_cache
+def image_list(request, user=None):
+    return render(request, 'catalogue/image_list.html')
+
+
 @never_cache
 def user(request, username):
     user = get_object_or_404(User, username=username)
@@ -333,6 +339,37 @@ def book(request, slug):
     })
 
 
+def image(request, slug):
+    image = get_object_or_404(Image, slug=slug)
+    if not image.accessible(request):
+        return HttpResponseForbidden("Not authorized.")
+
+    if request.user.has_perm('catalogue.change_image'):
+        if request.method == "POST":
+            form = forms.ImageForm(request.POST, instance=image)
+            if form.is_valid():
+                form.save()
+                return http.HttpResponseRedirect(image.get_absolute_url())
+        else:
+            form = forms.ImageForm(instance=image)
+            editable = True
+    else:
+        form = forms.ReadonlyImageForm(instance=image)
+        editable = False
+
+    #publish_error = publishable_error(book)
+    publish_error = 'Publishing not implemented yet.'
+    publishable = publish_error is None
+
+    return direct_to_template(request, "catalogue/image_detail.html", extra_context={
+        "object": image,
+        "publishable": publishable,
+        "publishable_error": publish_error,
+        "form": form,
+        "editable": editable,
+    })
+
+
 @permission_required('catalogue.add_chunk')
 def chunk_add(request, slug, chunk):
     try: