From acbfbf53a3866aee2b5ee02278498881a77761cd Mon Sep 17 00:00:00 2001 From: Jennifer Richards <jennifer@painless-security.com> Date: Mon, 2 Nov 2020 20:11:13 +0000 Subject: [PATCH] Do not require redundant meeting number for session materials view. Commit ready for merge. - Legacy-Id: 18654 --- ietf/meeting/tests_views.py | 6 ++---- ietf/meeting/urls.py | 2 +- ietf/meeting/views.py | 13 +++++-------- ietf/templates/meeting/session_agenda_include.html | 2 +- ietf/templates/meeting/session_buttons_include.html | 2 +- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index 4a85738fd..210057bf4 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<session_id>\d+)/doc/%(name)s/remove$' % settings.URL_REGEXPS, views.remove_sessionpresentation), url(r'^session/(?P<session_id>\d+)\.ics$', views.agenda_ical), url(r'^sessions/(?P<acronym>[-a-z0-9]+)\.ics$', views.agenda_ical), - url(r'^session/(?P<session_id>\d+)/agenda_materials$', views.session_materials), url(r'^slidesubmission/(?P<slidesubmission_id>\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<session_id>\d+)/agenda_materials$', views.session_materials), # 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)), diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 3625224f9..7ad74104b 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -1301,16 +1301,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 @@ </div> <div class="modal-body"> <div class="session-materials" - data-src="{% url 'ietf.meeting.views.session_materials' num=meeting.number session_id=session.pk %}"> + data-src="{% url 'ietf.meeting.views.session_materials' session_id=session.pk %}"> </div> </div> <div class="modal-footer"> diff --git a/ietf/templates/meeting/session_buttons_include.html b/ietf/templates/meeting/session_buttons_include.html index 30fb21b0b..609a3ede7 100644 --- a/ietf/templates/meeting/session_buttons_include.html +++ b/ietf/templates/meeting/session_buttons_include.html @@ -8,7 +8,7 @@ <span id="session-buttons-{{session.pk}}" class="text-nowrap"> {% with acronym=session.historic_group.acronym %} {% if session.agenda and show_agenda %} - {% include "meeting/session_agenda_include.html" %} + {% include "meeting/session_agenda_include.html" with slug=slug session=session timeslot=timeslot only %} <!-- agenda pop-up button --> <a class="" data-toggle="modal" data-target="#modal-{{slug}}" title="Show meeting materials"><span class="fa fa-fw fa-arrows-alt"></span></a> <!-- materials tar file -->