diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index b333967db..9eae14f2e 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -159,8 +159,7 @@ class MeetingTests(TestCase): self.assertIn(registration_text, agenda_content) # Make sure there's a frame for the session agenda and it points to the right place - assignment_url = urlreverse('ietf.meeting.views.session_materials', - kwargs=dict(num=meeting.number, session_id=session.pk)) + assignment_url = urlreverse('ietf.meeting.views.session_materials', kwargs=dict(session_id=session.pk)) self.assertTrue( any( [assignment_url in x.attrib["data-src"] @@ -851,8 +850,7 @@ class MeetingTests(TestCase): meeting = make_meeting_test_data() session = Session.objects.filter(meeting=meeting, group__acronym="mars").first() - url = urlreverse('ietf.meeting.views.session_materials', - kwargs=dict(num=meeting.number, session_id=session.pk)) + url = urlreverse('ietf.meeting.views.session_materials', kwargs=dict(session_id=session.pk)) r = self.client.get(url) self.assertEqual(r.status_code, 200) q = PyQuery(r.content) diff --git a/ietf/meeting/urls.py b/ietf/meeting/urls.py index c9db14df9..d37ab793d 100644 --- a/ietf/meeting/urls.py +++ b/ietf/meeting/urls.py @@ -21,7 +21,6 @@ safe_for_all_meeting_types = [ url(r'^session/(?P\d+)/doc/%(name)s/remove$' % settings.URL_REGEXPS, views.remove_sessionpresentation), url(r'^session/(?P\d+)\.ics$', views.agenda_ical), url(r'^sessions/(?P[-a-z0-9]+)\.ics$', views.agenda_ical), - url(r'^session/(?P\d+)/agenda_materials$', views.session_materials), url(r'^slidesubmission/(?P\d+)$', views.approve_proposed_slides) ] @@ -125,6 +124,7 @@ urlpatterns = [ url(r'^upcoming/?$', views.upcoming), url(r'^upcoming\.ics/?$', views.upcoming_ical), url(r'^upcoming\.json/?$', views.upcoming_json), + url(r'^session/(?P\d+)/agenda_materials$', views.session_materials), # Then patterns from more specific to less url(r'^(?Pinterim-[a-z0-9-]+)/', include(type_interim_patterns)), url(r'^(?P\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)), diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index ef7c3c912..9b67eb2f3 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -1300,16 +1300,13 @@ def diff_schedules(request, num): }) @ensure_csrf_cookie -def session_materials(request, num, session_id): +def session_materials(request, session_id): """Session details for agenda page pop-up""" - meeting = get_object_or_404(Meeting, number=num) - schedule = meeting.schedule - assignments = schedule.assignments.filter(session__id=int(session_id)) + session = get_object_or_404(Session, id=session_id) + assignments = SchedTimeSessAssignment.objects.filter(session=session) if len(assignments) == 0: - raise Http404('No such session in this schedule') - assert len(assignments) == 1 - meeting = assignments[0].timeslot.meeting # timeslot is guaranteed to be non-null - assignments = preprocess_assignments_for_agenda(assignments, meeting) + raise Http404('No such scheduled session') + assignments = preprocess_assignments_for_agenda(assignments, session.meeting) assignment = assignments[0] return render(request, 'meeting/session_materials.html', dict(item=assignment)) diff --git a/ietf/templates/meeting/session_agenda_include.html b/ietf/templates/meeting/session_agenda_include.html index 1a607fe68..86e8f03ce 100644 --- a/ietf/templates/meeting/session_agenda_include.html +++ b/ietf/templates/meeting/session_agenda_include.html @@ -16,7 +16,7 @@