src/p4l/views.py
changeset 113 c05567404888
parent 99 0d54489e8b26
child 117 0a4e7d6ebe80
equal deleted inserted replaced
112:ba6056f58516 113:c05567404888
     3 Created on Aug 27, 2013
     3 Created on Aug 27, 2013
     4 
     4 
     5 @author: tc
     5 @author: tc
     6 '''
     6 '''
     7 from datetime import datetime
     7 from datetime import datetime
     8 from django.conf import settings
       
     9 from django.views.generic import ListView, DetailView, View
       
    10 from django.shortcuts import redirect, get_object_or_404
       
    11 from p4l.forms import RecordFilterForm
       
    12 from p4l.models import Record
       
    13 from p4l.utils import get_labels_for_uris
       
    14 import json
     8 import json
    15 import logging
     9 import logging
    16 
    10 
       
    11 from django.conf import settings
       
    12 from django.shortcuts import redirect, get_object_or_404
       
    13 from django.views.generic import DetailView, View
       
    14 
       
    15 from p4l.models import Record
       
    16 from p4l.utils import get_labels_for_uris
       
    17 
    17 
    18 
    18 logger = logging.getLogger(__name__)
    19 logger = logging.getLogger(__name__)
    19 
       
    20 class RecordListView(ListView):
       
    21     
       
    22     queryset = Record.objects.select_related("language").prefetch_related('titles', 'imprints').order_by('identifier')  # @UndefinedVariable
       
    23     paginate_by = settings.NB_RECORDS_BY_PAGE
       
    24     template_name = "p4l/p4l_home.html"
       
    25     form_class = RecordFilterForm
       
    26     
       
    27     def get_context_data(self, **kwargs):
       
    28         context = ListView.get_context_data(self, **kwargs)
       
    29         context['filter_form'] = self.form_class()
       
    30         # Add filter params from GET params
       
    31         filter_params = {}
       
    32         if 'title' in self.request.GET:
       
    33             filter_params['title'] = self.request.GET['title']
       
    34         context['filter_params'] = filter_params
       
    35         return context
       
    36     
       
    37     def get_queryset(self):
       
    38         qs = super(RecordListView, self).get_queryset()
       
    39         filter_form = self.form_class(self.request.GET)
       
    40         if filter_form.is_valid():
       
    41             return filter_form.get_filter_qs(qs)
       
    42         else:
       
    43             return qs
       
    44 
    20 
    45 
    21 
    46 class RecordDetailView(DetailView):
    22 class RecordDetailView(DetailView):
    47     
    23     
    48     model = Record
    24     model = Record