"Gatunki literackie" -> "Gatunki".
[wolnelektury.git] / apps / catalogue / views.py
index 0525374..bf52dc4 100644 (file)
@@ -97,6 +97,10 @@ def book_list(request):
 
 
 def tagged_object_list(request, tags=''):
+    # Prevent DoS attacks on our database
+    if len(tags.split('/')) > 6:
+        raise Http404
+        
     try:
         tags = models.Tag.get_tag_list(tags)
     except models.Tag.DoesNotExist:
@@ -112,6 +116,9 @@ def tagged_object_list(request, tags=''):
     related_tags = models.Tag.objects.related_for_model(tags, model, counts=True, extra={'where': [extra_where]})
     categories = split_tags(related_tags)
 
+    if not theme_is_set:
+        model=models.Book.objects.filter(parent=None)
+    
     return newtagging_views.tagged_object_list(
         request,
         tag_model=models.Tag,
@@ -126,12 +133,20 @@ def book_detail(request, slug):
     book = get_object_or_404(models.Book, slug=slug)
     tags = list(book.tags.filter(~Q(category='set')))
     categories = split_tags(tags)
+    book_children = book.children.all().order_by('parent_number')
     
     form = forms.SearchForm()
     return render_to_response('catalogue/book_detail.html', locals(),
         context_instance=RequestContext(request))
 
 
+def book_text(request, slug):
+    book = get_object_or_404(models.Book, slug=slug)
+    
+    return render_to_response('catalogue/book_text.html', locals(),
+        context_instance=RequestContext(request))
+
+
 def logout_then_redirect(request):
     auth.logout(request)
     return HttpResponseRedirect(request.GET.get('next', '/'))