You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

39 lines
1.2 KiB

# -*- coding: utf-8 -*-
from django.views.generic.edit import FormMixin
from django.conf import settings
from haystack.query import SearchQuerySet
from functions.custom_views import ContextMixin
from functions.custom_views import ListView
from exposition.models import Exposition
from conference.models import Conference
from .forms import FilterForm
class FilterListView(ContextMixin, FormMixin, ListView):
initial_ctx = {'filtering': True}
form_class = FilterForm
paginate_by = settings.CLIENT_PAGINATION
template_name = 'events/filter_listview.html'
def get_form_kwargs(self):
kwargs = super(FilterListView, self).get_form_kwargs()
kwargs.update({'data': self.request.GET})
return kwargs
def get_queryset(self):
if self.form.is_valid():
qs = self.form.filter()
else:
qs = SearchQuerySet().models(Exposition, Conference).all()
return qs
def get(self, request, *args, **kwargs):
self.form = self.get_form(self.get_form_class())
self.extra_ctx['form'] = self.form
return super(FilterListView, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.get(request, *args, **kwargs)