From 5ef84cd7dfad53c8ada1b06192ac07d838940920 Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Fri, 6 Dec 2013 16:31:02 +0000 Subject: [PATCH] Move proceedings feed to meeting/ and remove traces of shim layer from it - Legacy-Id: 6818 --- ietf/meeting/feeds.py | 43 +++++++++++++++++++ ietf/proceedings/feeds.py | 90 --------------------------------------- ietf/urls.py | 4 +- 3 files changed, 45 insertions(+), 92 deletions(-) create mode 100644 ietf/meeting/feeds.py delete mode 100644 ietf/proceedings/feeds.py diff --git a/ietf/meeting/feeds.py b/ietf/meeting/feeds.py new file mode 100644 index 000000000..9c093f033 --- /dev/null +++ b/ietf/meeting/feeds.py @@ -0,0 +1,43 @@ +import re, os, datetime + +from django.contrib.syndication.feeds import Feed +from django.utils.feedgenerator import Atom1Feed +from django.conf import settings + +from ietf.doc.models import Document + +class LatestMeetingMaterial(Feed): + feed_type = Atom1Feed + link = "/meeting/" + language = "en" + feed_url = "/feed/wg-proceedings/" + base_url = "http://www3.ietf.org/proceedings/" + + def items(self): + objs = [] + for doc in Document.objects.filter(type__in=("agenda", "minutes", "slides")).order_by('-time')[:60]: + obj = dict( + title=doc.type_id, + group_acronym=doc.name.split("-")[2], + date=doc.time, + link=self.base_url + os.path.join(doc.get_file_path(), doc.external_url)[len(settings.AGENDA_PATH):], + author="" + ) + objs.append(obj) + + return objs + + def title(self, obj): + return "Meeting Materials Activity" + + def item_link(self, item): + return item['link'] + + def item_pubdate(self, item): + return item['date'] + + def item_author_name(self, item): + return item['author'] + + def item_author_email(self, item): + return None diff --git a/ietf/proceedings/feeds.py b/ietf/proceedings/feeds.py deleted file mode 100644 index 7483df0d1..000000000 --- a/ietf/proceedings/feeds.py +++ /dev/null @@ -1,90 +0,0 @@ -import re, os -from django.contrib.syndication.feeds import Feed -from django.utils.feedgenerator import Atom1Feed -from django.conf import settings -from ietf.proceedings.models import WgProceedingsActivities -from ietf.proceedings.models import Slide, WgAgenda, Proceeding -from datetime import datetime, time - -class LatestWgProceedingsActivity(Feed): - feed_type = Atom1Feed - link = "/foo" - description = "foobar" - language = "en" - feed_url = "/feed/wg-proceedings/" - base_url = "http://www3.ietf.org/proceedings/" - - def items(self): - if settings.USE_DB_REDESIGN_PROXY_CLASSES: - objs = [] - from ietf.doc.models import Document - for doc in Document.objects.filter(type__in=("agenda", "minutes", "slides")).order_by('-time')[:60]: - obj = dict( - title=doc.type_id, - group_acronym=doc.name.split("-")[2], - date=doc.time, - link=self.base_url + os.path.join(doc.get_file_path(), doc.external_url)[len(settings.AGENDA_PATH):], - author="" - ) - objs.append(obj) - - return objs - - objs = [] - for act in WgProceedingsActivities.objects.order_by('-act_date')[:60]: - obj = {} - - m = re.match("^slide, '(.*)', was uploaded$", act.activity) - if m: - obj['title'] = m.group(1) - obj['title'] = re.sub("[^ -~]+", "", obj['title']) - slides = Slide.objects.filter(meeting=act.meeting).filter(slide_name=m.group(1)).filter(group_acronym_id=act.group_acronym_id) - if len(slides) == 1: - obj['link'] = self.base_url + slides[0].file_loc() - - m = re.match("^agenda was uploaded$", act.activity) - if m: - obj['title'] = "agenda"; - agendas = WgAgenda.objects.filter(meeting=act.meeting).filter(group_acronym_id=act.group_acronym_id) - if len(agendas) == 1: - dir = Proceeding.objects.get(meeting_num=act.meeting).dir_name - obj['link'] = self.base_url + dir + "/agenda/" + agendas[0].filename - - if len(obj) > 0: - try: - act.irtf = False - obj['group_acronym'] = act.acronym() - except: - act.irtf = True - try: - obj['group_acronym'] = act.acronym() - except: - obj['group_acronym'] = "?" - obj['date'] = datetime.combine(act.act_date, time(int(act.act_time[0:2]), int(act.act_time[3:5]), int(act.act_time[6:8]))) - obj['author'] = str(act.act_by) - objs.append(obj) - - return objs - - def get_object(self, bits): - obj = {} - obj['title'] = "This is the title"; - return obj - - def title(self, obj): - return "Meeting Materials Activity" - - def item_link(self, item): - if 'link' in item: - return item['link'] - else: - return "" - - def item_pubdate(self, item): - return item['date'] - - def item_author_name(self, item): - return item['author'] - - def item_author_email(self, item): - return None; diff --git a/ietf/urls.py b/ietf/urls.py index bf4012abd..536dfe6ea 100644 --- a/ietf/urls.py +++ b/ietf/urls.py @@ -7,7 +7,7 @@ from django.contrib import admin from ietf.iesg.feeds import IESGAgenda from ietf.doc.feeds import DocumentChanges, InLastCall from ietf.ipr.feeds import LatestIprDisclosures -from ietf.proceedings.feeds import LatestWgProceedingsActivity +from ietf.meeting.feeds import LatestMeetingMaterial from ietf.liaisons.feeds import Liaisons from ietf.wgcharter.feeds import GroupChanges @@ -35,7 +35,7 @@ feeds = { 'group-changes': GroupChanges, 'ipr': LatestIprDisclosures, 'liaison': Liaisons, - 'wg-proceedings' : LatestWgProceedingsActivity + 'wg-proceedings' : LatestMeetingMaterial, } sitemaps = {