update record view with slug
authorcavaliet
Wed, 04 Sep 2013 13:28:02 +0200
changeset 30 a84e31f1f223
parent 29 3a3b90b1abb2
child 31 f0e689abd6b0
update record view with slug
src/p4l/templates/p4l/p4l_home.html
src/p4l/urls.py
src/p4l/views.py
--- a/src/p4l/templates/p4l/p4l_home.html	Wed Sep 04 12:19:06 2013 +0200
+++ b/src/p4l/templates/p4l/p4l_home.html	Wed Sep 04 13:28:02 2013 +0200
@@ -47,7 +47,7 @@
           <li>{{ t.title }}</li>
           {% endfor %}</ul></td>
       <td>
-        <a class="btn btn-default" href="{% url 'p4l_record_view' %}?uri={{ record.uri }}"><i class="glyphicon glyphicon-eye-open"></i></a>
+        <a class="btn btn-default" href="{% url 'p4l_record_view' slug=record.identifier %}"><i class="glyphicon glyphicon-eye-open"></i></a>
         <a class="btn btn-default" href="{% url 'p4l_record_edit' id=record.identifier %}"><i class="glyphicon glyphicon-pencil"></i></a>
       </td>
     </tr>
--- a/src/p4l/urls.py	Wed Sep 04 12:19:06 2013 +0200
+++ b/src/p4l/urls.py	Wed Sep 04 13:28:02 2013 +0200
@@ -8,7 +8,7 @@
 urlpatterns = patterns('',
     url(r'^$', RecordListView.as_view(), name='p4l_home'),
     url(r'^auth/', include(auth_urls)),
-    url(r'^record/view$', RecordDetailView.as_view(), name='p4l_record_view'),
+    url(r'^record/view/(?P<slug>\w+)$', RecordDetailView.as_view(), name='p4l_record_view'),
     url(r'^record/edit/(?P<id>\w+)$', RecordEditView.as_view(), name='p4l_record_edit'),
     url(r'^api/', include('p4l.api.urls')),
 
--- a/src/p4l/views.py	Wed Sep 04 12:19:06 2013 +0200
+++ b/src/p4l/views.py	Wed Sep 04 13:28:02 2013 +0200
@@ -52,17 +52,12 @@
     
     model = Record
     template_name = "p4l/p4l_record_view.html"
-    slug_field = "uri" # Even if it is useless because we override get_objet
+    slug_field = "identifier"
     
     @method_decorator(login_required)
     def dispatch(self, *args, **kwargs):
         return super(RecordDetailView, self).dispatch(*args, **kwargs)
     
-    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"), uri=self.request.GET["uri"])
-    
     def get_context_data(self, **kwargs):
         context = DetailView.get_context_data(self, **kwargs)
         # We get the language, "fr" by default