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 |