Added a first iteration of /meeting/upcoming.json for Meetecho use, with the expectation that buildout and tweaks may be required.

- Legacy-Id: 17727
This commit is contained in:
Henrik Levkowetz 2020-05-04 18:47:14 +00:00
parent 267bd59040
commit f53f667f75
3 changed files with 27 additions and 0 deletions

View file

@ -1511,6 +1511,15 @@ class InterimTests(TestCase):
self.assertEqual(r.content.count(b'UID'), 2)
def test_upcoming_json(self):
make_meeting_test_data()
url = urlreverse("ietf.meeting.views.upcoming_json")
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.assertEqual(r.get('Content-Type'), "application/json;charset=utf-8")
data = r.json()
self.assertEqual(len(data), 3)
def test_interim_request_permissions(self):
'''Ensure only authorized users see link to request interim meeting'''
make_meeting_test_data()

View file

@ -120,6 +120,7 @@ urlpatterns = [
url(r'^past/?$', views.past),
url(r'^upcoming/?$', views.upcoming),
url(r'^upcoming\.ics/?$', views.upcoming_ical),
url(r'^upcoming\.json/?$', views.upcoming_json),
# Then patterns from more specific to less
url(r'^(?P<num>interim-[a-z0-9-]+)/', include(type_interim_patterns)),
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),

View file

@ -2733,6 +2733,23 @@ def upcoming_ical(request):
return response
def upcoming_json(request):
'''Return Upcoming meetings in json format'''
filters = request.GET.getlist('filters')
today = datetime.date.today()
# get meetings starting 7 days ago -- we'll filter out sessions in the past further down
meetings = data_for_meetings_overview(Meeting.objects.filter(date__gte=today-datetime.timedelta(days=7)).order_by('date'))
data = {}
for m in meetings:
data[m.number] = {
'date': m.date.strftime("%Y-%m-%d"),
}
response = HttpResponse(json.dumps(data, indent=2, sort_keys=False), content_type='application/json;charset=%s'%settings.DEFAULT_CHARSET)
return response
def floor_plan(request, num=None, floor=None, ):
meeting = get_meeting(num)
schedule = meeting.schedule