From 0776d68b439b4594acd8630da892bf3f2b7744ad Mon Sep 17 00:00:00 2001 From: Andromeda Yelton Date: Fri, 9 Mar 2012 19:05:24 -0500 Subject: [PATCH] supporter wishbook feed round 1! let's see if it works --- core/feeds.py | 29 +++++++++++++++++++++++++++++ frontend/urls.py | 8 +++++--- 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 core/feeds.py diff --git a/core/feeds.py b/core/feeds.py new file mode 100644 index 00000000..e83fe211 --- /dev/null +++ b/core/feeds.py @@ -0,0 +1,29 @@ +from django.contrib.auth.models import User +from django.contrib.syndication.views import Feed +from django.shortcuts import get_object_or_404 + +class SupporterWishlistFeed(Feed): + def get_object(self, request, supporter): + return get_object_or_404(User, username=supporter) + + def title(self, obj): + return "Latest wishbooks for %s on unglue.it" % obj.username + + def description(self, obj): + return "Latest wishbooks for %s on unglue.it" % obj.username + + def link(self, obj): + return "/%s/feed/" % obj.username + + def item_title(self, item): + return "%s" % item.title + + def item_link(self, item): + return "/work/%s" % item.id + + # we're not getting a link object existing later in the system when + # we need it to; why not? + + def items(self): + andromeda = User.objects.filter(username="andromeda2")[0] + return andromeda.wishlist.works.all().order_by('-id')[:5] \ No newline at end of file diff --git a/frontend/urls.py b/frontend/urls.py index e3c94dc0..cb87f666 100644 --- a/frontend/urls.py +++ b/frontend/urls.py @@ -5,6 +5,7 @@ from django.views.generic import ListView, DetailView from django.contrib.auth.decorators import login_required from django.conf import settings +from regluit.core.feeds import SupporterWishlistFeed from regluit.core.models import Campaign from regluit.frontend.views import CampaignFormView, GoodreadsDisplayView, LibraryThingView, PledgeView, PledgeCompleteView, PledgeCancelView, FAQView from regluit.frontend.views import CampaignListView, DonateView, WorkListView, UngluedListView, InfoPageView @@ -12,7 +13,7 @@ from regluit.frontend.views import CampaignListView, DonateView, WorkListView, U urlpatterns = patterns( "regluit.frontend.views", url(r"^$", "home", name="home"), - url(r"^supporter/(?P.+)/$", "supporter", {'template_name': 'supporter.html'}, name="supporter"), + url(r"^supporter/(?P[^/]+)/$", "supporter", {'template_name': 'supporter.html'}, name="supporter"), url(r"^search/$", "search", name="search"), url(r"^privacy/$", TemplateView.as_view(template_name="privacy.html"), name="privacy"), @@ -62,6 +63,8 @@ urlpatterns = patterns( name="about"), url(r"^comments/$", "comment", name="comment"), url(r"^info/(?P[\w\.]*)$", InfoPageView.as_view()), + url(r"^info/(?P[\w\.]*)$", InfoPageView.as_view()), + url(r'^supporter/(?P[^/]+)/feed/$', SupporterWishlistFeed()), ) if not settings.IS_PREVIEW: @@ -71,5 +74,4 @@ if not settings.IS_PREVIEW: url(r"^goodreads/clear_wishlist/$","clear_wishlist", name="clear_wishlist"), url(r"^donate/$", DonateView.as_view(), name="donate"), url(r"^celery/clear/$","clear_celery_tasks", name="clear_celery_tasks"), -) - +) \ No newline at end of file