--- a/src/p4l/views.py Wed Aug 28 11:16:03 2013 +0200
+++ b/src/p4l/views.py Wed Aug 28 13:36:31 2013 +0200
@@ -12,37 +12,33 @@
from django.views.generic import ListView#, DetailView, View
#from django.views.generic.list import MultipleObjectMixin
from .models import Record
+from .forms import RecordFilterForm
import logging
logger = logging.getLogger(__name__)
class RecordListView(ListView):
- queryset = Record.objects.select_related() # @UndefinedVariable
+ queryset = Record.objects.select_related("language").prefetch_related('titles') # @UndefinedVariable
paginate_by = settings.NB_RECORDS_BY_PAGE
- #paginator_class = JocondePaginator
template_name = "p4l/p4l_home.html"
- #filter_form_class = TermFilterForm
+ form_class = RecordFilterForm
+
-# def get_filter_form(self):
-# initial = { 'order_by':'label',
-# 'order_dir': 'asc',
-# 'thesaurus': None,
-# 'label': None,
-# 'link_status': -1,
-# 'validated': None}
-# return self.filter_form_class(self.request.GET, initial=initial, auto_id=True)
-#
-# def get_context_data(self, **kwargs):
-# context = ListView.get_context_data(self, **kwargs)
-# context['filter_form'] = self.get_filter_form()
-# context['term_tree_valid_thesaurus'] = json.dumps([entry['thesaurus__id'] for entry in Term.objects.root_nodes().values('thesaurus__id').annotate(root_nodes_count=Count('thesaurus__id')).order_by().filter(root_nodes_count__lt=settings.JOCONDE_TERM_TREE_MAX_ROOT_NODE)]) # @UndefinedVariable
-# return context
-#
-# def get_queryset(self):
-# qs = super(TermListView, self).get_queryset()
-# filter_form = self.get_filter_form()
-# if filter_form.is_valid():
-# return filter_form.get_filter_qs(qs)
-# else:
-# return None
+ def get_context_data(self, **kwargs):
+ context = ListView.get_context_data(self, **kwargs)
+ context['filter_form'] = self.form_class()
+ # Add filter params from GET params
+ filter_params = {}
+ if 'title' in self.request.GET:
+ filter_params['title'] = self.request.GET['title']
+ context['filter_params'] = filter_params
+ return context
+
+ def get_queryset(self):
+ qs = super(RecordListView, self).get_queryset()
+ filter_form = self.form_class(self.request.GET)
+ if filter_form.is_valid():
+ return filter_form.get_filter_qs(qs)
+ else:
+ return qs