--- a/src/p4l/views.py Wed Aug 28 18:45:41 2013 +0200
+++ b/src/p4l/views.py Thu Aug 29 15:42:00 2013 +0200
@@ -6,15 +6,17 @@
'''
from django.conf import settings
-from django.core.paginator import Paginator, InvalidPage, EmptyPage
-from django.db.models import Count
+#from django.core.paginator import Paginator, InvalidPage, EmptyPage
+#from django.db.models import Count
#from django.http.response import HttpResponse, HttpResponseForbidden
-from django.views.generic import ListView#, DetailView, View
+from django.shortcuts import get_object_or_404
+from django.views.generic import ListView, DetailView#, View
#from django.views.generic.list import MultipleObjectMixin
from .models import Record
from .forms import RecordFilterForm
import logging
+
logger = logging.getLogger(__name__)
class RecordListView(ListView):
@@ -42,3 +44,18 @@
return filter_form.get_filter_qs(qs)
else:
return qs
+
+
+class RecordDetailView(DetailView):
+
+ model = Record
+ template_name = "p4l/p4l_record_view.html"
+ slug_field = "uri" # Even if it is useless because we override get_objet
+
+ def get_object(self, queryset=None):
+ if "uri" not in self.request.GET:
+ raise AttributeError(u"Record view must be called uri GET parameter")
+
+ return get_object_or_404(Record.objects.select_related("language").prefetch_related('titles'), uri=self.request.GET["uri"])
+
+