Skip to content

Commit f53f667

Browse files
committed
Added a first iteration of /meeting/upcoming.json for Meetecho use, with the expectation that buildout and tweaks may be required.
- Legacy-Id: 17727
1 parent 267bd59 commit f53f667

3 files changed

Lines changed: 27 additions & 0 deletions

File tree

ietf/meeting/tests_views.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,6 +1511,15 @@ def test_upcoming_ical(self):
15111511
self.assertEqual(r.content.count(b'UID'), 2)
15121512

15131513

1514+
def test_upcoming_json(self):
1515+
make_meeting_test_data()
1516+
url = urlreverse("ietf.meeting.views.upcoming_json")
1517+
r = self.client.get(url)
1518+
self.assertEqual(r.status_code, 200)
1519+
self.assertEqual(r.get('Content-Type'), "application/json;charset=utf-8")
1520+
data = r.json()
1521+
self.assertEqual(len(data), 3)
1522+
15141523
def test_interim_request_permissions(self):
15151524
'''Ensure only authorized users see link to request interim meeting'''
15161525
make_meeting_test_data()

ietf/meeting/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
url(r'^past/?$', views.past),
121121
url(r'^upcoming/?$', views.upcoming),
122122
url(r'^upcoming\.ics/?$', views.upcoming_ical),
123+
url(r'^upcoming\.json/?$', views.upcoming_json),
123124
# Then patterns from more specific to less
124125
url(r'^(?P<num>interim-[a-z0-9-]+)/', include(type_interim_patterns)),
125126
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),

ietf/meeting/views.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2733,6 +2733,23 @@ def upcoming_ical(request):
27332733
return response
27342734

27352735

2736+
def upcoming_json(request):
2737+
'''Return Upcoming meetings in json format'''
2738+
filters = request.GET.getlist('filters')
2739+
today = datetime.date.today()
2740+
2741+
# get meetings starting 7 days ago -- we'll filter out sessions in the past further down
2742+
meetings = data_for_meetings_overview(Meeting.objects.filter(date__gte=today-datetime.timedelta(days=7)).order_by('date'))
2743+
2744+
data = {}
2745+
for m in meetings:
2746+
data[m.number] = {
2747+
'date': m.date.strftime("%Y-%m-%d"),
2748+
}
2749+
2750+
response = HttpResponse(json.dumps(data, indent=2, sort_keys=False), content_type='application/json;charset=%s'%settings.DEFAULT_CHARSET)
2751+
return response
2752+
27362753
def floor_plan(request, num=None, floor=None, ):
27372754
meeting = get_meeting(num)
27382755
schedule = meeting.schedule

0 commit comments

Comments
 (0)