equal
deleted
inserted
replaced
4 |
4 |
5 @author: tc |
5 @author: tc |
6 ''' |
6 ''' |
7 |
7 |
8 from django.conf import settings |
8 from django.conf import settings |
9 #from django.core.paginator import Paginator, InvalidPage, EmptyPage |
9 from django.contrib.auth.decorators import login_required |
10 #from django.db.models import Count |
|
11 #from django.http.response import HttpResponse, HttpResponseForbidden |
|
12 from django.shortcuts import get_object_or_404 |
10 from django.shortcuts import get_object_or_404 |
13 from django.views.generic import ListView, DetailView#, View |
11 from django.utils.decorators import method_decorator |
14 #from django.views.generic.list import MultipleObjectMixin |
12 from django.views.generic import ListView, DetailView |
15 from .models import Record |
13 from .models import Record |
16 from .forms import RecordFilterForm |
14 from .forms import RecordFilterForm |
17 from .utils import get_labels_for_uris |
15 from .utils import get_labels_for_uris |
18 import logging |
16 import logging |
19 |
17 |
25 queryset = Record.objects.select_related("language").prefetch_related('titles').distinct() # @UndefinedVariable |
23 queryset = Record.objects.select_related("language").prefetch_related('titles').distinct() # @UndefinedVariable |
26 paginate_by = settings.NB_RECORDS_BY_PAGE |
24 paginate_by = settings.NB_RECORDS_BY_PAGE |
27 template_name = "p4l/p4l_home.html" |
25 template_name = "p4l/p4l_home.html" |
28 form_class = RecordFilterForm |
26 form_class = RecordFilterForm |
29 |
27 |
|
28 @method_decorator(login_required) |
|
29 def dispatch(self, *args, **kwargs): |
|
30 return super(RecordListView, self).dispatch(*args, **kwargs) |
30 |
31 |
31 def get_context_data(self, **kwargs): |
32 def get_context_data(self, **kwargs): |
32 context = ListView.get_context_data(self, **kwargs) |
33 context = ListView.get_context_data(self, **kwargs) |
33 context['filter_form'] = self.form_class() |
34 context['filter_form'] = self.form_class() |
34 # Add filter params from GET params |
35 # Add filter params from GET params |
50 class RecordDetailView(DetailView): |
51 class RecordDetailView(DetailView): |
51 |
52 |
52 model = Record |
53 model = Record |
53 template_name = "p4l/p4l_record_view.html" |
54 template_name = "p4l/p4l_record_view.html" |
54 slug_field = "uri" # Even if it is useless because we override get_objet |
55 slug_field = "uri" # Even if it is useless because we override get_objet |
|
56 |
|
57 @method_decorator(login_required) |
|
58 def dispatch(self, *args, **kwargs): |
|
59 return super(RecordDetailView, self).dispatch(*args, **kwargs) |
55 |
60 |
56 def get_object(self, queryset=None): |
61 def get_object(self, queryset=None): |
57 if "uri" not in self.request.GET: |
62 if "uri" not in self.request.GET: |
58 raise AttributeError(u"Record view must be called uri GET parameter") |
63 raise AttributeError(u"Record view must be called uri GET parameter") |
59 return get_object_or_404(Record.objects.select_related("language"), uri=self.request.GET["uri"]) |
64 return get_object_or_404(Record.objects.select_related("language"), uri=self.request.GET["uri"]) |