X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/19a7dc68c1e08655d53672a2527b39c38efe1f9b..refs/heads/develop:/philo/contrib/winer/models.py?ds=sidebyside diff --git a/philo/contrib/winer/models.py b/philo/contrib/winer/models.py index 98d559e..4acf5d1 100644 --- a/philo/contrib/winer/models.py +++ b/philo/contrib/winer/models.py @@ -105,7 +105,7 @@ class FeedView(MultiView): """ Returns a view function that renders a list of items as a feed. - :param get_items_attr: A callable or the name of a callable on the :class:`FeedView` that will return a (items, extra_context) tuple when called with view arguments. + :param get_items_attr: A callable or the name of a callable on the :class:`FeedView` that will return a (items, extra_context) tuple when called with the object for the feed and view arguments. :param reverse_name: The name which can be used reverse the page for this feed using the :class:`FeedView` as the urlconf. :param feed_type: The slug used to render the feed class which will be used by the returned view function. @@ -117,7 +117,7 @@ class FeedView(MultiView): def inner(request, extra_context=None, *args, **kwargs): obj = self.get_object(request, *args, **kwargs) feed = self.get_feed(obj, request, reverse_name, feed_type, *args, **kwargs) - items, xxx = get_items(request, extra_context=extra_context, *args, **kwargs) + items, xxx = get_items(obj, request, extra_context=extra_context, *args, **kwargs) self.populate_feed(feed, items, request) response = HttpResponse(mimetype=feed.mime_type) @@ -135,16 +135,17 @@ class FeedView(MultiView): """ get_items = get_items_attr if callable(get_items_attr) else getattr(self, get_items_attr) - page = page_attr if isinstance(page_attr, Page) else getattr(self, page_attr) def inner(request, extra_context=None, *args, **kwargs): - items, extra_context = get_items(request, extra_context=extra_context, *args, **kwargs) + obj = self.get_object(request, *args, **kwargs) + items, extra_context = get_items(obj, request, extra_context=extra_context, *args, **kwargs) items, item_context = self.process_page_items(request, items) context = self.get_context() context.update(extra_context or {}) context.update(item_context or {}) + page = page_attr if isinstance(page_attr, Page) else getattr(self, page_attr) return page.render_to_response(request, extra_context=context) return inner