Initial port to django-1.7
[sommitrealweird.git] / sommitrealweird / photo / views.py
index 920b1da04e8fe556d97ebd08e58778c991c581be..77b4dd88c9e14134de991c1cc28c74de2557a623 100644 (file)
@@ -1,30 +1,45 @@
-import django.views.generic.list_detail
+from django.views.generic import ListView
 from django.http import Http404
 from models import Album, Photo
 
+class AlbumListView(ListView):
+    model = Album
+    queryset = Album.objects.order_by('-name')
+    paginate_by = 20
+
+    def get_context_data(self, **kwargs):
+        context = super(AlbumListView, self).get_context_data(**kwargs)
+        return context
+
 def album_view(request, slug):
-    album = Album.objects.get(slug__exact=slug)
-    photos = Photo.objects.filter(album=album).order_by('order', 'image')
-    return django.views.generic.list_detail.object_list(request, photos, paginate_by=20, template_name='photo/photo_index.html')
+    try:
+        album = Album.objects.get(slug__exact=slug)
+        photos = Photo.objects.filter(album=album).order_by('order', 'image')
+    except:
+        raise Http404
+    return django.views.generic.list_detail.object_list(request, photos, paginate_by=20, template_name='photo/photo_index.html', allow_empty=False)
 
 def photo_view(request, slug, id):
-    id = int(id)
-    album = Album.objects.get(slug__exact=slug)
-    photos = Photo.objects.filter(album=album).order_by('order', 'image')
-    photo_qs = Photo.objects.filter(id=id)
-    found_prev = False
-    prev_photo = None
-    found_next = False
-    next_photo = None
-    for photo in photos:
-        if not found_prev:
-            if not photo.id == id:
-                prev_photo = photo
-            else:
-                found_prev = True
-        if found_next:
-            next_photo = photo
-            break
-        if photo.id == id:
-            found_next = True
+    try:
+        id = int(id)
+        album = Album.objects.get(slug__exact=slug)
+        photos = Photo.objects.filter(album=album).order_by('order', 'image')
+        photo_qs = Photo.objects.filter(id=id)
+        found_prev = False
+        prev_photo = None
+        found_next = False
+        next_photo = None
+        for photo in photos:
+            if not found_prev:
+                if not photo.id == id:
+                    prev_photo = photo
+                else:
+                    found_prev = True
+            if found_next:
+                next_photo = photo
+                break
+            if photo.id == id:
+                found_next = True
+    except:
+        raise Http404
     return django.views.generic.list_detail.object_detail(request, photo_qs, object_id=id, template_name='photo/photo.html', extra_context={"next_photo": next_photo, "prev_photo": prev_photo })