X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/b0fadf2591f3af957c1c8e0307d0bcef9e9f8538..3efaf2dda390ed91cdba771a490b7c81a9d292a2:/src/search/views.py diff --git a/src/search/views.py b/src/search/views.py index e5eb3a274..6ff0f7ab6 100644 --- a/src/search/views.py +++ b/src/search/views.py @@ -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 .forms import SearchFilters 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 + ')' - 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 = [ @@ -116,8 +117,30 @@ def hint(request, mozhint=False, param='term'): 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): + if request.EXPERIMENTS['search'].value: + request.EXPERIMENTS['layout'].override(True) + return search(request) + query = request.GET.get('q', '') format = request.GET.get('format')