|
|
|
|
@ -2,6 +2,7 @@ |
|
|
|
|
from django.views.generic.edit import FormMixin |
|
|
|
|
from django.conf import settings |
|
|
|
|
from django.template.loader import render_to_string |
|
|
|
|
from django.template import RequestContext |
|
|
|
|
|
|
|
|
|
from haystack.query import SearchQuerySet |
|
|
|
|
|
|
|
|
|
@ -19,7 +20,7 @@ class FilterListView(ContextMixin, FormMixin, ListView): |
|
|
|
|
initial_ctx = {'filtering': True} |
|
|
|
|
form_class = FilterForm |
|
|
|
|
paginate_by = settings.CLIENT_PAGINATION |
|
|
|
|
_template_name = 'events/filter_listview.html' |
|
|
|
|
template_name = 'events/filter_listview.html' |
|
|
|
|
_ajax_results_template_name = 'events/filter_listview_ajax.html' |
|
|
|
|
_ajax_form_template_name = 'includes/events/filter_form.html' |
|
|
|
|
|
|
|
|
|
@ -37,22 +38,17 @@ class FilterListView(ContextMixin, FormMixin, ListView): |
|
|
|
|
# import pdb; pdb.set_trace() |
|
|
|
|
return qs |
|
|
|
|
|
|
|
|
|
def handle_ajax(request, *args, **kwargs): |
|
|
|
|
self.template_name = |
|
|
|
|
handle_ajax |
|
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
self.form = self.get_form(self.get_form_class()) |
|
|
|
|
self.extra_ctx['form'] = self.form |
|
|
|
|
self.template_name = self._template_name |
|
|
|
|
|
|
|
|
|
# ajax |
|
|
|
|
if request.is_ajax(): |
|
|
|
|
self.template_name = self._ajax_results_template_name |
|
|
|
|
ctx = RequestContext(request, self.get_context_data(object_list=self.get_queryset())) |
|
|
|
|
data = { |
|
|
|
|
'success': True, |
|
|
|
|
'results': super(FilterListView, self).get(request, *args, **kwargs), |
|
|
|
|
'form': render_to_string(self._ajax_form_template_name, {'form': self.form}), |
|
|
|
|
'results': render_to_string(self._ajax_results_template_name, ctx), |
|
|
|
|
'form': render_to_string(self._ajax_form_template_name, ctx), |
|
|
|
|
} |
|
|
|
|
return JsonResponse(data) |
|
|
|
|
# usual get |
|
|
|
|
@ -68,6 +64,6 @@ class FilterListView(ContextMixin, FormMixin, ListView): |
|
|
|
|
get = self.request.GET.copy() |
|
|
|
|
if 'page' in get: |
|
|
|
|
del get['page'] |
|
|
|
|
self.context['GETparams'] = get.urlencode() |
|
|
|
|
context['GETparams'] = get.urlencode() |
|
|
|
|
|
|
|
|
|
return context |
|
|
|
|
|