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:
parent
fdab931d2c
commit
b9dbf5cd53
|
@ -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),
|
||||
)
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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'
|
||||
|
|
Loading…
Reference in a new issue