summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
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
commita7fc9216d540ae3383cdbae1d26abe33d92f9a72 (patch)
tree3744453f8fafa7edadc0b989ef29f261535f62da /chimere/views.py
parent94a213cc95235f73b6d6f7fb6ff30ad4309b4ce6 (diff)
downloadChimè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.py44
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