Fixed login redirects
[philo.git] / contrib / penfield / utils.py
index 7b5e946..1a53cfe 100644 (file)
@@ -2,6 +2,7 @@ from django.utils.feedgenerator import Atom1Feed, Rss201rev2Feed
 from django.conf.urls.defaults import url, patterns
 from django.core.urlresolvers import reverse
 from django.http import HttpResponse
 from django.conf.urls.defaults import url, patterns
 from django.core.urlresolvers import reverse
 from django.http import HttpResponse
+from philo.utils import paginate
 
 
 class FeedMultiViewMixin(object):
 
 
 class FeedMultiViewMixin(object):
@@ -15,8 +16,9 @@ class FeedMultiViewMixin(object):
        atom_feed = Atom1Feed
        rss_feed = Rss201rev2Feed
        feed_description = ''
        atom_feed = Atom1Feed
        rss_feed = Rss201rev2Feed
        feed_description = ''
+       list_var = 'objects'
        
        
-       def page_view(self, func, page, list_var='entries'):
+       def page_view(self, func, page):
                """
                Wraps an object-fetching function and renders the results as a page.
                """
                """
                Wraps an object-fetching function and renders the results as a page.
                """
@@ -26,12 +28,12 @@ class FeedMultiViewMixin(object):
                        context = self.get_context()
                        context.update(extra_context or {})
 
                        context = self.get_context()
                        context.update(extra_context or {})
 
-                       if 'page' in kwargs or 'page' in request.GET:
+                       if 'page' in kwargs or 'page' in request.GET or (hasattr(self, 'per_page') and self.per_page):
                                page_num = kwargs.get('page', request.GET.get('page', 1))
                                paginator, paginated_page, objects = paginate(objects, self.per_page, page_num)
                                page_num = kwargs.get('page', request.GET.get('page', 1))
                                paginator, paginated_page, objects = paginate(objects, self.per_page, page_num)
-                               context.update({'paginator': paginator, 'paginated_page': paginated_page, list_var: objects})
+                               context.update({'paginator': paginator, 'paginated_page': paginated_page, self.list_var: objects})
                        else:
                        else:
-                               context.update({list_var: objects})
+                               context.update({self.list_var: objects})
 
                        return page.render_to_response(node, request, extra_context=context)
 
 
                        return page.render_to_response(node, request, extra_context=context)