68 lines
2.6 KiB
Python
68 lines
2.6 KiB
Python
# Copyright The IETF Trust 2011, All Rights Reserved
|
|
|
|
from django.conf import settings
|
|
from django.contrib.syndication.feeds import Feed, FeedDoesNotExist
|
|
from django.utils.feedgenerator import Atom1Feed
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from django.core.urlresolvers import reverse
|
|
from ietf.utils.history import find_history_active_at
|
|
|
|
from ietf.group.models import Group
|
|
from ietf.wgcharter.views import _get_history, _get_html
|
|
from wgcharter import markup_txt
|
|
import datetime
|
|
import re, os
|
|
|
|
class GroupComments(Feed):
|
|
feed_type = Atom1Feed
|
|
title_template = "feeds/wg_charter_title.html"
|
|
description_template = "feeds/wg_charter_description.html"
|
|
def get_object(self, bits):
|
|
if len(bits) != 1:
|
|
raise ObjectDoesNotExist
|
|
return Group.objects.get(acronym=bits[0])
|
|
|
|
def title(self, obj):
|
|
return "WG Record changes for %s" % obj.acronym
|
|
|
|
def link(self, obj):
|
|
if obj is None:
|
|
raise FeedDoesNotExist
|
|
return reverse('wg_view', kwargs={'name': obj.acronym})
|
|
|
|
def description(self, obj):
|
|
return self.title(obj)
|
|
|
|
def items(self, obj):
|
|
history = _get_history(obj)
|
|
for h in history:
|
|
gh = find_history_active_at(obj, h['date'])
|
|
if gh:
|
|
h['chairs'] = [x.person.plain_name() for x in gh.rolehistory_set.filter(name__slug="chair")]
|
|
h['secr'] = [x.person.plain_name() for x in gh.rolehistory_set.filter(name__slug="secr")]
|
|
h['techadv'] = [x.person.plain_name() for x in gh.rolehistory_set.filter(name__slug="techadv")]
|
|
else:
|
|
h['chairs'] = [x.person.plain_name() for x in obj.role_set.filter(name__slug="chair")]
|
|
h['secr'] = [x.person.plain_name() for x in obj.role_set.filter(name__slug="secr")]
|
|
h['techadv'] = [x.person.plain_name() for x in obj.role_set.filter(name__slug="techadv")]
|
|
dh = find_history_active_at(obj.charter, h['date'])
|
|
if dh:
|
|
h['rev'] = dh.rev
|
|
h['charter'] = _get_html(
|
|
str(dh.name)+"-"+str(dh.rev)+",html",
|
|
os.path.join(dh.get_file_path(), dh.name+"-"+dh.rev+".txt"))
|
|
else:
|
|
h['rev'] = obj.charter.rev
|
|
h['charter'] = _get_html(
|
|
"charter-ietf-"+str(obj.acronym)+"-"+str(obj.charter.rev)+",html",
|
|
os.path.join(obj.charter.get_file_path(), "charter-ietf-"+obj.acronym+"-"+obj.charter.rev+".txt"))
|
|
return history
|
|
|
|
def item_link(self, obj):
|
|
return reverse('wg_view', kwargs={'name': obj['group'].acronym})
|
|
|
|
def item_pubdate(self, obj):
|
|
return obj['date']
|
|
|
|
|