src/p4l/views.py
changeset 4 047675624f45
parent 1 d184767fdd52
child 5 62e97cd13730
--- 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