datatracker/ietf/iesg/feeds.py
Ole Laursen 5c6ee01bf7 drafts -> docs in /feed/iesg-agenda/ since we're returning more than
just I-Ds, sort by latest first, limit to documents on current and
future telechats (as the description says) to speed it up, add simple
test of the feed
 - Legacy-Id: 6312
2013-09-30 12:17:38 +00:00

39 lines
1.3 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.doc.models import Document
import datetime
class IESGAgenda(Feed):
title = "Documents on Future IESG Telechat Agendas"
link = settings.IDTRACKER_BASE_URL + "/iesg/agenda/"
feed_type = Atom1Feed
def items(self):
from ietf.doc.models import TelechatDocEvent
docs = Document.objects.filter(docevent__telechatdocevent__telechat_date__gte=datetime.date.today()).distinct()
for d in docs:
d.latest_telechat_event = d.latest_event(TelechatDocEvent, type="scheduled_for_telechat")
docs = [d for d in docs if d.latest_telechat_event.telechat_date]
docs.sort(key=lambda d: d.latest_telechat_event.telechat_date, reverse=True)
return docs
def item_categories(self, doc):
return [ str(doc.telechat_date) ]
def item_pubdate(self, doc):
return doc.latest_telechat_event.time
def item_author_name(self, doc):
return doc.ad.plain_name() if doc.ad else "None"
def item_author_email(self, doc):
if not doc.ad:
return ""
e = doc.ad.role_email("ad")
if not e:
return ""
return e.address