merge player changes and detail page + search
[wolnelektury.git] / apps / search / views.py
index 438989c..bfa3c9b 100644 (file)
@@ -5,6 +5,7 @@ from django.template import RequestContext
 from django.contrib.auth.decorators import login_required
 from django.views.decorators import cache
 from django.http import HttpResponse, HttpResponseRedirect, Http404, HttpResponsePermanentRedirect
 from django.contrib.auth.decorators import login_required
 from django.views.decorators import cache
 from django.http import HttpResponse, HttpResponseRedirect, Http404, HttpResponsePermanentRedirect
+from django.utils.translation import ugettext as _
 
 from catalogue.utils import get_random_hash
 from catalogue.models import Book, Tag, Fragment, TAG_CATEGORIES
 
 from catalogue.utils import get_random_hash
 from catalogue.models import Book, Tag, Fragment, TAG_CATEGORIES
@@ -50,7 +51,7 @@ def category_name(category):
 def hint(request):
     prefix = request.GET.get('term', '')
     if len(prefix) < 2:
 def hint(request):
     prefix = request.GET.get('term', '')
     if len(prefix) < 2:
-        return JSONResponse(dumps(None))
+        return JSONResponse([])
     JVM.attachCurrentThread()
     s = MultiSearch()
 
     JVM.attachCurrentThread()
     s = MultiSearch()
 
@@ -66,6 +67,7 @@ def hint(request):
     # jezeli tagi dot tylko ksiazki, to wazne zeby te nowe byly w tej samej ksiazce
     # jesli zas dotycza themes, to wazne, zeby byly w tym samym fragmencie.
 
     # jezeli tagi dot tylko ksiazki, to wazne zeby te nowe byly w tej samej ksiazce
     # jesli zas dotycza themes, to wazne, zeby byly w tym samym fragmencie.
 
+    
     tags = s.hint_tags(prefix)
     books = s.hint_books(prefix)
 
     tags = s.hint_tags(prefix)
     books = s.hint_books(prefix)
 
@@ -73,12 +75,12 @@ def hint(request):
 
     return JSONResponse(
         [{'label': t.name,
 
     return JSONResponse(
         [{'label': t.name,
-          'category': category_name(t.category),
+          'category': _(category_name(t.category)),
           'id': t.id,
           'url': t.get_absolute_url()}
           for t in tags] + \
           [{'label': b.title,
           'id': t.id,
           'url': t.get_absolute_url()}
           for t in tags] + \
           [{'label': b.title,
-            'category': category_name('book'),
+            'category': _(category_name('book')),
             'id': b.id,
             'url': b.get_absolute_url()}
             for b in books])
             'id': b.id,
             'url': b.get_absolute_url()}
             for b in books])
@@ -108,7 +110,7 @@ def main(request):
     if 'q' in request.GET:
         tags = request.GET.get('tags', '')
         query = request.GET['q']
     if 'q' in request.GET:
         tags = request.GET.get('tags', '')
         query = request.GET['q']
-        book_id = request.get('book', None)
+        book_id = request.GET.get('book', None)
         book = None
         if book_id is not None:
             book = get_object_or_404(Book, id=book_id)
         book = None
         if book_id is not None:
             book = get_object_or_404(Book, id=book_id)
@@ -124,7 +126,8 @@ def main(request):
                                       context_instance=RequestContext(request))
 
         hint.tags(tag_list)
                                       context_instance=RequestContext(request))
 
         hint.tags(tag_list)
-        hint.book(book)
+        if book:
+            hint.books(book)
 
         toks = StringReader(query)
         fuzzy = 'fuzzy' in request.GET
 
         toks = StringReader(query)
         fuzzy = 'fuzzy' in request.GET