diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-09-28 18:23:50 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-09-28 18:23:50 +0200 |
commit | a7fc9216d540ae3383cdbae1d26abe33d92f9a72 (patch) | |
tree | 3744453f8fafa7edadc0b989ef29f261535f62da /chimere/views.py | |
parent | 94a213cc95235f73b6d6f7fb6ff30ad4309b4ce6 (diff) | |
download | Chimère-a7fc9216d540ae3383cdbae1d26abe33d92f9a72.tar.bz2 Chimère-a7fc9216d540ae3383cdbae1d26abe33d92f9a72.zip |
Native search: adapt template, views and javascript
Diffstat (limited to 'chimere/views.py')
-rw-r--r-- | chimere/views.py | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/chimere/views.py b/chimere/views.py index 83b0b28..ee27d26 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -39,7 +39,7 @@ from django.shortcuts import get_object_or_404, redirect, render from django.template import defaultfilters from django.utils.http import urlquote from django.utils.translation import ugettext as _ -from django.views.generic import TemplateView, ListView +from django.views.generic import TemplateView, ListView, FormView from chimere.actions import actions from chimere import models @@ -1273,7 +1273,44 @@ def property_choice_list(request, area_name='', property_slug=''): content_type="application/json") -SearchView = None +class SearchView(FormView): + template_name = 'search/search.html' + form_class = forms.SearchForm + results_per_page = settings.SEARCH_RESULTS_PER_PAGE + + def get_results(self, query, area=None): + results = [] + for model in [models.Marker, models.Route, models.Polygon]: + results += model.search(query, area=area, get_json=True) + return results + + def get_context_data(self, **kwargs): + context = super(SearchView, self).get_context_data(**kwargs) + area, area_name = get_area(self.kwargs.get('area_name', None)) + query, results = None, [] + if "q" in self.request.GET: + query = self.request.GET['q'] + results = self.get_results(query, area) + context.update({ + 'query': query, + 'results': results, + 'area_name': area_name + }) + # (paginator, page) = self.build_page() + + # context.update({ 'query': self.query, }) + + """ + if self.results and hasattr(self.results, 'query') and self.results.query.backend.include_spelling: + context['suggestion'] = self.form.get_suggestion() + + context.update(self.extra_context()) + """ + + return context + + + autocomplete = None if getattr(settings, 'HAYSTACK_SEARCH_ENGINE', None): @@ -1304,6 +1341,3 @@ if getattr(settings, 'HAYSTACK_SEARCH_ENGINE', None): 'spelling': spelling, }) return HttpResponse(the_data, content_type='application/json') -else: - # TODO SEARCH - pass |