datatracker/ietf/iesg/feeds.py
2012-01-24 17:17:24 +00:00

48 lines
1.7 KiB
Python

# Copyright The IETF Trust 2007, 2008, All Rights Reserved
from django.conf import settings
from django.contrib.syndication.feeds import Feed
from django.utils.feedgenerator import Atom1Feed
from ietf.idtracker.models import IDInternal
import datetime
class IESGAgenda(Feed):
title = "Documents on Future IESG Telechat Agendas"
link = "http://datatracker.ietf.org/iesg/agenda/"
feed_type = Atom1Feed
def items(self):
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
from ietf.doc.models import TelechatDocEvent
drafts = IDInternal.objects.filter(docevent__telechatdocevent__telechat_date__gte=datetime.date.min).distinct()
for d in drafts:
d.latest_telechat_event = d.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
drafts = [d for d in drafts if d.latest_telechat_event.telechat_date]
drafts.sort(key=lambda d: d.latest_telechat_event.telechat_date)
return drafts
return IDInternal.objects.filter(agenda=1).order_by('telechat_date')
def item_categories(self, item):
return [ str(item.telechat_date) ]
def item_pubdate(self, item):
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
return item.latest_telechat_event.time
f = item.comments().filter(comment_text__startswith='Placed on agenda for telechat')
try:
comment = f[0]
date = comment.datetime()
except IndexError:
date = datetime.datetime.now() #XXX
return date
def item_author_name(self, item):
return str( item.job_owner )
def item_author_email(self, item):
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
return item.ad.role_email("ad")
return item.job_owner.person.email()[1]