@@ -145,27 +145,24 @@ class OmnibusFeed(ConservancyFeedBase):
a.sort(key=operator.attrgetter('pub_date'), reverse=True)
return a
def item_extra_kwargs(self, item):
return super(OmnibusFeed, self).item_extra_kwargs(item)
class BlogFeed(ConservancyFeedBase):
link = "/blog/"
get_absolute_url = '/feeds/blog/'
def get_object(self, request):
# This is a hack: keep GET object handy so I always have it in all methods.
if not hasattr(self, 'GET') and request and hasattr(request, 'GET'):
self.GET = request.GET
return request
def title(self, obj):
answer = "The Software Freedom Conservancy Blog"
GET = obj.GET
tags = []
if 'author' in GET:
tags = GET.getlist('author')
if 'tag' in GET:
tags += GET.getlist('tag')
@@ -217,47 +214,31 @@ class BlogFeed(ConservancyFeedBase):
return answer
def item_title(self, item):
return item.headline
def item_description(self, item):
return item.summary
def item_author_name(self, item):
return item.author.formal_name
def item_author_email(self, item):
GET = self.GET
if not 'author' in GET:
return "%s@sfconservancy.org" % item.author
else:
answer = ""
authors = GET.getlist('author')
firstTime = True
for author in authors:
if not firstTime:
answer = "%s@sfconservancy.org" % author
firstTime = False
answer += ",%s@sfconservancy.org" % author
def item_pubdate(self, item):
return item.pub_date
def items(self, obj):
def OR_filter(field_name, subfield_name, objs):
from django.db.models import Q
return reduce(lambda x, y: x | y,
[Q(**{'%s__%s' % (field_name, subfield_name): x})
for x in objs])
queryset = BlogEntry.objects.filter(pub_date__lte=datetime.now())
queryset = queryset.filter(OR_filter('author', 'username', authors))