Skip to content

Commit 1a6f720

Browse files
committed
Added csv output format for meeting agenda information, to assist
external applications (e.g., Android app, iPhone app) in harvesting and displaying meeting agenda info. - Legacy-Id: 3240
1 parent 867019f commit 1a6f720

4 files changed

Lines changed: 19 additions & 1 deletion

File tree

ietf/meeting/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
(r'^agenda.txt$', views.text_agenda),
1111
(r'^agenda/agenda.ics$', views.ical_agenda),
1212
(r'^agenda.ics$', views.ical_agenda),
13+
(r'^agenda.csv$', views.csv_agenda),
1314
(r'^agenda/week-view.html$', views.week_view),
1415
(r'^week-view.html$', views.week_view),
1516
(r'^(?P<num>\d+)/agenda(?:.html)?/?$', views.html_agenda),
1617
(r'^(?P<num>\d+)/agenda.txt$', views.text_agenda),
1718
(r'^(?P<num>\d+)/agenda.ics$', views.ical_agenda),
19+
(r'^(?P<num>\d+)/agenda.csv$', views.csv_agenda),
1820
(r'^(?P<num>\d+)/week-view.html$', views.week_view),
1921
(r'^(?P<num>\d+)/agenda/(?P<session>[A-Za-z0-9-]+)-drafts.pdf$', views.session_draft_pdf),
2022
(r'^(?P<num>\d+)/agenda/(?P<session>[A-Za-z0-9-]+)-drafts.tgz$', views.session_draft_tarfile),

ietf/meeting/views.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,3 +349,14 @@ def ical_agenda(request, num=None):
349349
{"filter":set(filter), "timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
350350
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda, },
351351
RequestContext(request)), mimetype="text/calendar")
352+
353+
def csv_agenda(request, num=None):
354+
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
355+
wgs = IETFWG.objects.filter(status=IETFWG.ACTIVE).order_by('group_acronym__acronym')
356+
rgs = IRTF.objects.all().order_by('acronym')
357+
areas = Area.objects.filter(status=Area.ACTIVE).order_by('area_acronym__acronym')
358+
359+
return HttpResponse(render_to_string("meeting/agenda.csv",
360+
{"timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
361+
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda, },
362+
RequestContext(request)), mimetype="text/csv")

ietf/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@
155155
# Valid values:
156156
# 'production', 'test', 'development'
157157
# Override this in settings_local.py if it's not true
158-
SERVER_MODE = 'production'
158+
SERVER_MODE = 'development'
159159

160160
# The name of the method to use to invoke the test suite
161161
TEST_RUNNER = 'ietf.utils.test_runner.run_tests'

ietf/templates/meeting/agenda.csv

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{% load humanize %}{% autoescape off %}{% load ietf_filters %}"Date","Start","End","Session","Room","Area","Acronym","Type","Description","Session ID","Agenda","Slides"
2+
{% for slot in timeslots %}{% ifchanged %}{% if slot.reg_info %}"{{ slot.meeting_date|date:"Y-m-d" }}","{{ slot.registration.time_desc|slice:":4" }}","{{ slot.registration.time_desc|slice:"5:9" }}","Registration","{{ venue.reg_area_name }}","","","","{{ slot.registration.name }}","r{{slot.day_id}}","",""
3+
{% endif %}{% endifchanged %}{% if slot.session_name %}{% if slot.break_info %}"{{ slot.meeting_date|date:"Y-m-d" }}","{{ slot.break_info.time_desc|slice:":4" }}","{{ slot.break_info.time_desc|slice:"5:9" }}","Break","{{ venue.break_area_name }}","","","","{{ slot.break_info.name }}","b{{slot.time_id}}","",""
4+
{% endif %}{% endif %}{% for session in slot.sessions_by_area %}"{{ slot.meeting_date|date:"Y-m-d" }}","{{ slot.time_desc|slice:":4" }}","{{ slot.time_desc|slice:"5:9" }}","{{ slot.session_name }}","{{ session.info.room_id.room_name }}","{{ session.info.area|upper }}","{{ session.info.acronym }}","{{ session.info.group_type_str }}","{{ session.info.acronym_name }}","{{session.info.session_id}}-{{session.info.ordinality}}","{% if session.info.agenda_file %}http://datatracker.ietf.org/meeting/{{ session.info.agenda_file }}{% endif %}","{% if session.info.slides %}{% for slide in session.info.slides %}http://www.ietf.org/proceedings/{{ slide.file_loc }}{% if not forloop.last %}|{% endif %}{% endfor %}{% endif %}"
5+
{% endfor %}{% endfor %}{% endautoescape %}

0 commit comments

Comments
 (0)