fix
[wolnelektury.git] / src / search / views.py
index e5eb3a2..9e36458 100644 (file)
@@ -11,6 +11,7 @@ from catalogue.models import Book, Tag
 from pdcounter.models import Author
 from picture.models import Picture
 from search.index import Search, SearchResult, PictureResult
 from pdcounter.models import Author
 from picture.models import Picture
 from search.index import Search, SearchResult, PictureResult
+from .forms import SearchFilters
 from suggest.forms import PublishingSuggestForm
 import re
 import json
 from suggest.forms import PublishingSuggestForm
 import re
 import json
@@ -90,14 +91,14 @@ def hint(request, mozhint=False, param='term'):
             translator = b.translator()
             if translator:
                 author_str += ' (tłum. ' + translator + ')'
             translator = b.translator()
             if translator:
                 author_str += ' (tłum. ' + translator + ')'
-                data.append(
-                    {
-                        'label': b.title,
-                        'author': author_str,
-                        'id': b.id,
-                        'url': b.get_absolute_url()
-                    }
-                )
+            data.append(
+                {
+                    'label': b.title,
+                    'author': author_str,
+                    'id': b.id,
+                    'url': b.get_absolute_url()
+                }
+            )
 
     if mozhint:
         data = [
 
     if mozhint:
         data = [
@@ -116,8 +117,29 @@ def hint(request, mozhint=False, param='term'):
         return JsonResponse(data, safe=False)
 
 
         return JsonResponse(data, safe=False)
 
 
+
+@cache.never_cache
+def search(request):
+    filters = SearchFilters(request.GET)
+    ctx = {
+        'title': 'Wynik wyszukiwania',
+        'query': filters.data['q'],
+        'filters': filters,
+    }
+    if filters.is_valid():
+        ctx['results'] = filters.results()
+        for k, v in ctx['results'].items():
+            if v:
+                ctx['hasresults'] = True
+                break
+    return render(request, 'search/results.html', ctx)
+
+
 @cache.never_cache
 def main(request):
 @cache.never_cache
 def main(request):
+    if request.EXPERIMENTS['layout'].value:
+        return search(request)
+
     query = request.GET.get('q', '')
 
     format = request.GET.get('format')
     query = request.GET.get('q', '')
 
     format = request.GET.get('format')