1461: Этап №5: Фильтрация событий

пофиксил генерацию контекста для аякса в фильтре
remotes/origin/stage5
Alexander Burdeiny 10 years ago
parent 5d3a2d5266
commit 757f786777
  1. 16
      events/views.py

@ -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

Loading…
Cancel
Save