10 from django.db.models import Count |
10 from django.db.models import Count |
11 #from django.http.response import HttpResponse, HttpResponseForbidden |
11 #from django.http.response import HttpResponse, HttpResponseForbidden |
12 from django.views.generic import ListView#, DetailView, View |
12 from django.views.generic import ListView#, DetailView, View |
13 #from django.views.generic.list import MultipleObjectMixin |
13 #from django.views.generic.list import MultipleObjectMixin |
14 from .models import Record |
14 from .models import Record |
|
15 from .forms import RecordFilterForm |
15 import logging |
16 import logging |
16 |
17 |
17 logger = logging.getLogger(__name__) |
18 logger = logging.getLogger(__name__) |
18 |
19 |
19 class RecordListView(ListView): |
20 class RecordListView(ListView): |
20 |
21 |
21 queryset = Record.objects.select_related() # @UndefinedVariable |
22 queryset = Record.objects.select_related("language").prefetch_related('titles') # @UndefinedVariable |
22 paginate_by = settings.NB_RECORDS_BY_PAGE |
23 paginate_by = settings.NB_RECORDS_BY_PAGE |
23 #paginator_class = JocondePaginator |
|
24 template_name = "p4l/p4l_home.html" |
24 template_name = "p4l/p4l_home.html" |
25 #filter_form_class = TermFilterForm |
25 form_class = RecordFilterForm |
26 |
26 |
27 # def get_filter_form(self): |
27 |
28 # initial = { 'order_by':'label', |
28 def get_context_data(self, **kwargs): |
29 # 'order_dir': 'asc', |
29 context = ListView.get_context_data(self, **kwargs) |
30 # 'thesaurus': None, |
30 context['filter_form'] = self.form_class() |
31 # 'label': None, |
31 # Add filter params from GET params |
32 # 'link_status': -1, |
32 filter_params = {} |
33 # 'validated': None} |
33 if 'title' in self.request.GET: |
34 # return self.filter_form_class(self.request.GET, initial=initial, auto_id=True) |
34 filter_params['title'] = self.request.GET['title'] |
35 # |
35 context['filter_params'] = filter_params |
36 # def get_context_data(self, **kwargs): |
36 return context |
37 # context = ListView.get_context_data(self, **kwargs) |
37 |
38 # context['filter_form'] = self.get_filter_form() |
38 def get_queryset(self): |
39 # 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 |
39 qs = super(RecordListView, self).get_queryset() |
40 # return context |
40 filter_form = self.form_class(self.request.GET) |
41 # |
41 if filter_form.is_valid(): |
42 # def get_queryset(self): |
42 return filter_form.get_filter_qs(qs) |
43 # qs = super(TermListView, self).get_queryset() |
43 else: |
44 # filter_form = self.get_filter_form() |
44 return qs |
45 # if filter_form.is_valid(): |
|
46 # return filter_form.get_filter_qs(qs) |
|
47 # else: |
|
48 # return None |
|