src/p4l/views.py
changeset 7 02008d61c3c8
parent 5 62e97cd13730
child 8 d10cdb768a03
equal deleted inserted replaced
6:ff4d2d4f1fb0 7:02008d61c3c8
     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.core.paginator import Paginator, InvalidPage, EmptyPage
    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.shortcuts import get_object_or_404
       
    13 from django.views.generic import ListView, DetailView#, View
    13 #from django.views.generic.list import MultipleObjectMixin
    14 #from django.views.generic.list import MultipleObjectMixin
    14 from .models import Record
    15 from .models import Record
    15 from .forms import RecordFilterForm
    16 from .forms import RecordFilterForm
    16 import logging
    17 import logging
       
    18 
    17 
    19 
    18 logger = logging.getLogger(__name__)
    20 logger = logging.getLogger(__name__)
    19 
    21 
    20 class RecordListView(ListView):
    22 class RecordListView(ListView):
    21     
    23     
    40         filter_form = self.form_class(self.request.GET)
    42         filter_form = self.form_class(self.request.GET)
    41         if filter_form.is_valid():
    43         if filter_form.is_valid():
    42             return filter_form.get_filter_qs(qs)
    44             return filter_form.get_filter_qs(qs)
    43         else:
    45         else:
    44             return qs
    46             return qs
       
    47 
       
    48 
       
    49 class RecordDetailView(DetailView):
       
    50     
       
    51     model = Record
       
    52     template_name = "p4l/p4l_record_view.html"
       
    53     slug_field = "uri" # Even if it is useless because we override get_objet
       
    54     
       
    55     def get_object(self, queryset=None):
       
    56         if "uri" not in self.request.GET:
       
    57             raise AttributeError(u"Record view must be called uri GET parameter")
       
    58         
       
    59         return get_object_or_404(Record.objects.select_related("language").prefetch_related('titles'), uri=self.request.GET["uri"])
       
    60 
       
    61