book/picture-only tags in api
[wolnelektury.git] / src / search / views.py
index b0f0641..309db73 100644 (file)
@@ -7,11 +7,9 @@ from django.shortcuts import render_to_response
 from django.template import RequestContext
 from django.views.decorators import cache
 from django.http import HttpResponse, JsonResponse
 from django.template import RequestContext
 from django.views.decorators import cache
 from django.http import HttpResponse, JsonResponse
-from django.utils.translation import ugettext as _
 
 from catalogue.utils import split_tags
 from catalogue.models import Book, Tag
 
 from catalogue.utils import split_tags
 from catalogue.models import Book, Tag
-from pdcounter.models import Author as PDCounterAuthor, BookStub as PDCounterBook
 from search.index import Search, SearchResult
 from suggest.forms import PublishingSuggestForm
 import re
 from search.index import Search, SearchResult
 from suggest.forms import PublishingSuggestForm
 import re
@@ -71,25 +69,25 @@ def hint(request):
     try:
         limit = int(request.GET.get('max', ''))
     except ValueError:
     try:
         limit = int(request.GET.get('max', ''))
     except ValueError:
-        limit = -1
+        limit = 20
     else:
         if limit < 1:
     else:
         if limit < 1:
-            limit = -1
+            limit = 20
 
 
+    authors = Tag.objects.filter(
+        category='author', name_pl__iregex='\m' + prefix).only('name', 'id', 'slug', 'category')
     data = [
         {
             'label': author.name,
     data = [
         {
             'label': author.name,
-            'category': _('author'),
             'id': author.id,
             'url': author.get_absolute_url(),
         }
             'id': author.id,
             'url': author.get_absolute_url(),
         }
-        for author in Tag.objects.filter(category='author', name__iregex=u'\m' + prefix)[:10]
+        for author in authors[:limit]
     ]
     if len(data) < limit:
         data += [
             {
                 'label': '<cite>%s</cite>, %s' % (b.title, b.author_unicode()),
     ]
     if len(data) < limit:
         data += [
             {
                 'label': '<cite>%s</cite>, %s' % (b.title, b.author_unicode()),
-                'category': _('book'),
                 'id': b.id,
                 'url': b.get_absolute_url()
             }
                 'id': b.id,
                 'url': b.get_absolute_url()
             }