annotate gpp/news/feeds.py @ 318:c550933ff5b6

Fix a bug where you'd get an error when trying to delete a forum thread (topic does not exist). Apparently when you call topic.delete() the posts would get deleted, but the signal handler for each one would run, and it would try to update the topic's post count or something, but the topic was gone? Reworked the code a bit and explicitly delete the posts first. I also added a sync() call on the parent forum since post counts were not getting adjusted.
author Brian Neal <bgneal@gmail.com>
date Sat, 05 Feb 2011 21:46:52 +0000
parents b4305e18d3af
children
rev   line source
gremmie@1 1 """
gremmie@1 2 This file contains the feed classes for the news application.
gremmie@1 3 """
bgneal@176 4 from django.contrib.syndication.views import Feed
bgneal@170 5
gremmie@1 6 from news.models import Story
bgneal@176 7 from core.functions import get_full_name
bgneal@176 8 from core.functions import copyright_str
bgneal@170 9
gremmie@1 10
gremmie@1 11 class LatestNewsFeed(Feed):
bgneal@170 12 """The Feed class for the news application"""
gremmie@1 13
bgneal@170 14 title = 'SurfGuitar101.com News Feed'
bgneal@170 15 link = '/feeds/news/'
bgneal@170 16 description = 'News articles and stories from SurfGuitar101.com'
bgneal@170 17 ttl = '720'
bgneal@176 18 author_name = 'Brian Neal'
bgneal@176 19 author_email = 'admin@surfguitar101.com'
gremmie@1 20
bgneal@176 21 def feed_copyright(self):
bgneal@176 22 return copyright_str()
bgneal@170 23
bgneal@170 24 def items(self):
bgneal@204 25 return Story.objects.order_by('-date_submitted')[:5]
bgneal@170 26
bgneal@176 27 def item_title(self, item):
bgneal@176 28 return item.title
bgneal@176 29
bgneal@176 30 def item_description(self, item):
bgneal@176 31 return item.short_text + item.long_text
bgneal@176 32
bgneal@176 33 def item_author_name(self, item):
bgneal@176 34 return get_full_name(item.submitter)
bgneal@176 35
bgneal@170 36 def item_pubdate(self, item):
bgneal@204 37 return item.date_submitted
bgneal@170 38
bgneal@170 39 def item_categories(self, item):
bgneal@170 40 return (item.category.title, )