+# -*- coding: utf-8 -*-
from datetime import datetime, date, timedelta
import logging
import os
from catalogue import forms
from catalogue import helpers
from catalogue.helpers import active_tab
-from catalogue.models import Book, Chunk, BookPublishRecord, ChunkPublishRecord
-from fileupload.views import UploadView
+from catalogue.models import Book, Chunk, BookPublishRecord, ChunkPublishRecord, Project
+from fileupload.views import UploadView, PackageView
#
# Quick hack around caching problems, TODO: use ETags
gallery=form.cleaned_data['gallery'],
)
- return http.HttpResponseRedirect(reverse("catalogue_book", args=[book.slug]))
+ return http.HttpResponseRedirect(reverse("wiki_editor", args=[book.slug]))
else:
form = forms.DocumentCreateForm(initial={
"slug": slug,
"title": slug.replace('-', ' ').title(),
- "gallery": slug,
})
return render(request, "catalogue/document_create_missing.html", {
})
+@login_required
def chunk_edit(request, slug, chunk):
try:
doc = Chunk.get(slug, chunk)
@transaction.commit_on_success
+@login_required
def chunk_mass_edit(request):
if request.method == 'POST':
ids = map(int, filter(lambda i: i.strip()!='', request.POST.get('ids').split(',')))
for b in books_affected:
b.touch() # cache
+ project_id = request.POST.get('project')
+ if project_id:
+ try:
+ project = Project.objects.get(pk=int(project_id))
+ except (Project.DoesNotExist, ValueError), e:
+ project = None
+ for c in chunks:
+ book = c.book
+ book.project = project
+ book.save()
+
for c in chunks: c.save()
return HttpResponse("", content_type="text/plain")
return http.HttpResponseRedirect(book.get_absolute_url())
-class GalleryView(UploadView):
+class GalleryMixin(object):
+ def get_directory(self):
+ return "%s%s/" % (settings.IMAGE_DIR, self.object.gallery)
def get_object(self, request, slug):
- return get_object_or_404(Book, slug=slug)
+ book = get_object_or_404(Book, slug=slug)
+ if not book.gallery:
+ raise Http404
+ return book
+
+class GalleryView(GalleryMixin, UploadView):
def breadcrumbs(self):
return [
- (_('books'), reverse('catalogue_document_list')),
+ (u'moduły', reverse('catalogue_document_list')),
(self.object.title, self.object.get_absolute_url()),
- (_('scan gallery'),),
+ (u'materiały',),
]
- def get_directory(self):
- return "%s%s/" % (settings.IMAGE_DIR, self.object.gallery)
+
+class GalleryPackageView(GalleryMixin, PackageView):
+
+ def get_redirect_url(self, slug):
+ return reverse('catalogue_book_gallery', kwargs = dict(slug=slug))