From: Stephen Burrows Date: Thu, 26 Aug 2010 14:44:21 +0000 (-0400) Subject: Shifted definition of the context list_var (entries vs. articles) to a class attribut... X-Git-Tag: philo-0.9~32^2~18 X-Git-Url: http://git.ithinksw.org/philo.git/commitdiff_plain/b9fa0c3d279f093b326ac1bc8dd431fa78f900b3?ds=sidebyside;hp=-c Shifted definition of the context list_var (entries vs. articles) to a class attribute. Since account_view can be put in place of any arbitrary view, let it accept args and kwargs to handle anything unexpected. --- b9fa0c3d279f093b326ac1bc8dd431fa78f900b3 diff --git a/contrib/penfield/models.py b/contrib/penfield/models.py index e433b84..621dc65 100644 --- a/contrib/penfield/models.py +++ b/contrib/penfield/models.py @@ -65,7 +65,8 @@ class BlogView(MultiView, FeedMultiViewMixin): entry_permalink_base = models.CharField(max_length=255, blank=False, default='entries') tag_permalink_base = models.CharField(max_length=255, blank=False, default='tags') feed_suffix = models.CharField(max_length=255, blank=False, default=FeedMultiViewMixin.feed_suffix) - feeds_enabled = models.BooleanField() + feeds_enabled = models.BooleanField() + list_var = 'entries' def __unicode__(self): return u'BlogView for %s' % self.blog.title @@ -284,6 +285,7 @@ class NewsletterView(MultiView, FeedMultiViewMixin): feed_suffix = models.CharField(max_length=255, blank=False, default=FeedMultiViewMixin.feed_suffix) feeds_enabled = models.BooleanField() + list_var = 'articles' @property def feed_title(self): diff --git a/contrib/penfield/utils.py b/contrib/penfield/utils.py index 7b5e946..3fe7e72 100644 --- a/contrib/penfield/utils.py +++ b/contrib/penfield/utils.py @@ -15,8 +15,9 @@ class FeedMultiViewMixin(object): 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. """ @@ -29,9 +30,9 @@ class FeedMultiViewMixin(object): if 'page' in kwargs or 'page' in request.GET: 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: - context.update({list_var: objects}) + context.update({self.list_var: objects}) return page.render_to_response(node, request, extra_context=context) diff --git a/contrib/waldo/models.py b/contrib/waldo/models.py index 93edab1..c2e98c4 100644 --- a/contrib/waldo/models.py +++ b/contrib/waldo/models.py @@ -350,7 +350,7 @@ class AccountMultiView(LoginMultiView): return form_instances - def account_view(self, request, node=None, extra_context=None, token_generator=email_token_generator): + def account_view(self, request, node=None, extra_context=None, token_generator=email_token_generator, *args, **kwargs): if request.method == 'POST': form_instances = self.get_account_form_instances(request.user, request.POST) current_email = request.user.email @@ -407,7 +407,8 @@ class AccountMultiView(LoginMultiView): def account_required(self, view): def inner(request, *args, **kwargs): if not self.has_valid_account(request.user): - messages.add_message(request, messages.ERROR, "You need to add some account information before you can post listings.", fail_silently=True) + if not request.method == "POST": + messages.add_message(request, messages.ERROR, "You need to add some account information before you can access this page.", fail_silently=True) return self.account_view(request, *args, **kwargs) return view(request, *args, **kwargs)