Create a separate view for search with no hits
[wolnelektury.git] / apps / catalogue / views.py
index 6de5a26..e50e51a 100644 (file)
@@ -206,14 +206,17 @@ def _tags_starting_with(prefix, user):
 def search(request):
     tags = request.GET.get('tags', '')
     prefix = request.GET.get('q', '')
 def search(request):
     tags = request.GET.get('tags', '')
     prefix = request.GET.get('q', '')
-    # Prefix must have at least 2 characters
-    if len(prefix) < 2:
-        return HttpResponse('')
     
     try:
         tag_list = models.Tag.get_tag_list(tags)
     except:
         tag_list = []
     
     try:
         tag_list = models.Tag.get_tag_list(tags)
     except:
         tag_list = []
+
+    # Prefix must have at least 2 characters
+    if len(prefix) < 2:
+        return HttpResponseRedirect(reverse('catalogue.views.search_no_hits', 
+            kwargs={'tags': '/'.join(tag.slug for tag in tag_list)}
+        ))
     
     result = _tags_starting_with(prefix, request.user)
     if len(result) > 0:
     
     result = _tags_starting_with(prefix, request.user)
     if len(result) > 0:
@@ -227,10 +230,23 @@ def search(request):
                 kwargs={'tags': '/'.join(tag.slug for tag in tag_list)}
             ))
     else:
                 kwargs={'tags': '/'.join(tag.slug for tag in tag_list)}
             ))
     else:
-        return render_to_response('catalogue/search_no_hits.html', {'query':prefix, 'tags':tag_list},
-            context_instance=RequestContext(request))
+        return HttpResponseRedirect(reverse('catalogue.views.search_no_hits', 
+            kwargs={'tags': '/'.join(tag.slug for tag in tag_list)}
+        ))
 
 
 
 
+def search_no_hits(request, tags):
+    try:
+        tag_list = models.Tag.get_tag_list(tags)
+    except:
+        tag_list = []
+
+    return render_to_response('catalogue/search_no_hits.html', {'tags':tag_list},
+        context_instance=RequestContext(request))
+
+
+search_no_hits
+
 def tags_starting_with(request):
     prefix = request.GET.get('q', '')
     # Prefix must have at least 2 characters
 def tags_starting_with(request):
     prefix = request.GET.get('q', '')
     # Prefix must have at least 2 characters
@@ -294,12 +310,15 @@ def remove_from_shelf(request, shelf, book):
     book = get_object_or_404(models.Book, slug=book)
     shelf = get_object_or_404(models.Tag, slug=shelf, category='set', user=request.user)
     
     book = get_object_or_404(models.Book, slug=book)
     shelf = get_object_or_404(models.Tag, slug=shelf, category='set', user=request.user)
     
-    models.Tag.objects.remove_tag(book, shelf)
-    
-    shelf.book_count -= 1
-    shelf.save()
-    
-    return HttpResponse('Usunieto')
+    if shelf in book.tags:
+        models.Tag.objects.remove_tag(book, shelf)
+
+        shelf.book_count -= 1
+        shelf.save()
+
+        return HttpResponse('Usunięto')
+    else:
+        return HttpResponse('Książki nie ma na półce')
 
 
 def collect_books(books):
 
 
 def collect_books(books):