Merge branch 'edumed' of https://github.com/fnp/redakcja into edumed
[redakcja.git] / apps / catalogue / views.py
index 16d1174..74036f0 100644 (file)
@@ -26,7 +26,6 @@ from catalogue import forms
 from catalogue import helpers
 from catalogue.helpers import active_tab
 from catalogue.models import Book, Chunk, BookPublishRecord, ChunkPublishRecord
 from catalogue import helpers
 from catalogue.helpers import active_tab
 from catalogue.models import Book, Chunk, BookPublishRecord, ChunkPublishRecord
-from catalogue.tasks import publishable_error
 
 #
 # Quick hack around caching problems, TODO: use ETags
 
 #
 # Quick hack around caching problems, TODO: use ETags
@@ -303,7 +302,7 @@ def book(request, slug):
         form = forms.ReadonlyBookForm(instance=book)
         editable = False
 
         form = forms.ReadonlyBookForm(instance=book)
         editable = False
 
-    publish_error = publishable_error(book)
+    publish_error = book.publishable_error()
     publishable = publish_error is None
 
     return direct_to_template(request, "catalogue/book_detail.html", extra_context={
     publishable = publish_error is None
 
     return direct_to_template(request, "catalogue/book_detail.html", extra_context={
@@ -414,6 +413,21 @@ def chunk_mass_edit(request):
                 
             for c in chunks: c.user = user
 
                 
             for c in chunks: c.user = user
 
+        status = request.POST.get('status')
+        if status:
+            books_affected = set()
+            for c in chunks:
+                if status == 'publish':
+                    c.head.publishable = True
+                    c.head.save()
+                elif status == 'unpublish':
+                    c.head.publishable = False
+                    c.head.save()
+                c.touch()  # cache
+                books_affected.add(c.book)
+            for b in books_affected:
+                b.touch()  # cache
+
         for c in chunks: c.save()
 
         return HttpResponse("", content_type="text/plain")
         for c in chunks: c.save()
 
         return HttpResponse("", content_type="text/plain")