Make WG agendas available trough datatracker URLs; this will avoid problems when the text from these pages are incorporated in frames in other datatracker pages.

- Legacy-Id: 2416
This commit is contained in:
Henrik Levkowetz 2010-07-26 11:57:27 +00:00
parent fdab931d2c
commit b9dbf5cd53
3 changed files with 32 additions and 4 deletions

View file

@ -6,10 +6,11 @@ from ietf.meeting import views
urlpatterns = patterns('',
(r'^(?P<meeting_num>\d+)/materials.html$', views.show_html_materials),
(r'^agenda/$', views.html_agenda),
(r'^agenda.html$', views.html_agenda),
(r'^agenda(.html)?$', views.html_agenda),
(r'^agenda.txt$', views.text_agenda),
(r'^(?P<num>\d+)/agenda.html$', views.html_agenda),
(r'^(?P<num>\d+)/agenda(.html)?$', views.html_agenda),
(r'^(?P<num>\d+)/agenda.txt$', views.text_agenda),
(r'^(?P<num>\d+)/session/(?P<session>[A-Za-z0-9-]+)(?P<ext>\.[A-Za-z0-9]+)?$', views.session_agenda),
(r'^$', views.current_materials),
)

View file

@ -2,8 +2,10 @@
# Create your views here.
#import models
import datetime
import os
from django.shortcuts import render_to_response, get_object_or_404
from ietf.proceedings.models import Meeting, MeetingTime, WgMeetingSession, MeetingVenue, IESGHistory, Proceeding, Switches, WgProceedingsActivities
from django.views.generic.list_detail import object_list
from django.http import HttpResponseRedirect, HttpResponse, Http404
from django.core.urlresolvers import reverse
@ -14,7 +16,9 @@ from django.conf import settings
from django.utils.decorators import decorator_from_middleware
from django.middleware.gzip import GZipMiddleware
from django.db.models import Count
import datetime
from ietf.proceedings.models import Meeting, MeetingTime, WgMeetingSession, MeetingVenue, IESGHistory, Proceeding, Switches, WgProceedingsActivities
@decorator_from_middleware(GZipMiddleware)
def show_html_materials(request, meeting_num=None):
@ -118,3 +122,23 @@ def text_agenda(request, num=None):
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda, },
RequestContext(request)), mimetype="text/plain")
def session_agenda(request, num, session, ext=None):
if ext:
extensions = [ ext.lstrip(".") ]
else:
extensions = ["html", "htm", "txt", "HTML", "HTM", "TXT", ]
for wg in (session, session.upper(), session.lower()):
for e in extensions:
path = settings.AGENDA_PATH_PATTERN % {"meeting":num, "wg":session, "ext":e}
if os.path.exists(path):
file = open(path)
text = file.read()
file.close()
if e.lower() == "txt":
return HttpResponse(text, mimetype="text/plain")
else:
return HttpResponse(text)
if ext:
raise Http404("No %s agenda for the %s session of IETF %s is available" % (ext, session, num))
else:
raise Http404("No agenda for the %s session of IETF %s is available" % (session, num))

View file

@ -156,6 +156,9 @@ TEST_RUNNER = 'ietf.utils.test_runner.run_tests'
INTERNET_DRAFT_PATH = '/a/www/ietf-ftp/internet-drafts/'
RFC_PATH = '/a/www/ietf-ftp/rfc/'
AGENDA_PATH = '/a/www/www6s/proceedings/'
AGENDA_PATH_PATTERN = '/a/www/www6s/proceedings/%(meeting)s/agenda/%(wg)s.%(ext)s'
MINUTES_PATH_PATTERN = '/a/www/www6s/proceedings/%(meeting)s/minutes/%(wg)s.%(ext)s'
SLIDES_PATH_PATTERN = '/a/www/www6s/proceedings/%(meeting)s/slides/%(wg)s-*'
IPR_DOCUMENT_PATH = '/a/www/ietf-ftp/ietf/IPR/'
IETFWG_DESCRIPTIONS_PATH = '/a/www/www6s/wg-descriptions/'
IESG_TASK_FILE = '/a/www/www6/iesg/internal/task.txt'