diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index 785cf8fcc4c..032e052d13c 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -6458,7 +6458,7 @@ def test_meeting_requests(self): group_type_without_meetings = 'editorial' self.assertFalse(GroupFeatures.objects.get(pk=group_type_without_meetings).has_meetings) - area = GroupFactory(type_id='area') + area = GroupFactory(type_id='area', acronym='area') requested_session = SessionFactory(meeting=meeting,group__parent=area,status_id='schedw',add_to_schedule=False) conflicting_session = SessionFactory(meeting=meeting,group__parent=area,status_id='schedw',add_to_schedule=False) ConstraintFactory(name_id='key_participant',meeting=meeting,source=requested_session.group,target=conflicting_session.group) @@ -6498,7 +6498,21 @@ def test_meeting_requests(self): status_id='schedw', add_to_schedule=False, ) - + # bof sessions should be shown + bof_session = SessionFactory( + meeting=meeting, + group__parent=area, + group__state_id='bof', + status_id='schedw', + add_to_schedule=False, + ) + # rg sessions should be shown under 'irtf' heading + rg_session = SessionFactory( + meeting=meeting, + group__type_id='rg', + status_id='schedw', + add_to_schedule=False, + ) def _sreq_edit_link(sess): return urlreverse( 'ietf.secr.sreq.views.edit', @@ -6531,6 +6545,17 @@ def _sreq_edit_link(sess): self.assertContains(r, _sreq_edit_link(has_meetings_not_meeting)) # link to the session request self.assertNotContains(r, not_has_meetings.group.acronym) self.assertNotContains(r, _sreq_edit_link(not_has_meetings)) # no link to the session request + self.assertContains(r, bof_session.group.acronym) + self.assertContains(r, _sreq_edit_link(bof_session)) # link to the session request + self.assertContains(r, rg_session.group.acronym) + self.assertContains(r, _sreq_edit_link(rg_session)) # link to the session request + # check headings - note that the special types (has_meetings, etc) do not have a group parent + # so they show up in 'other' + q = PyQuery(r.content) + self.assertEqual(len(q('h2#area')), 1) + self.assertEqual(len(q('h2#other-groups')), 1) + self.assertEqual(len(q('h2#irtf')), 1) # rg group has irtf group as parent + def test_request_minutes(self): meeting = MeetingFactory(type_id='ietf') diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 0c054db97d8..e555c53f349 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -2320,7 +2320,10 @@ def agenda_json(request, num=None): def meeting_requests(request, num=None): meeting = get_meeting(num) - groups_to_show = Group.objects.filter(state_id='active', type__features__has_meetings=True) + groups_to_show = Group.objects.filter( + state_id__in=('active', 'bof'), + type__features__has_meetings=True, + ) sessions = list( Session.objects.requests().filter( meeting__number=meeting.number, @@ -2340,7 +2343,7 @@ def meeting_requests(request, num=None): for s in sessions: s.current_status_name = status_names.get(s.current_status, s.current_status) s.requested_by_person = session_requesters.get(s.requested_by) - if s.group.parent and s.group.parent.type.slug == 'area': + if s.group.parent and s.group.parent.type.slug in ('area', 'irtf'): s.display_area = s.group.parent else: s.display_area = None diff --git a/ietf/templates/meeting/requests.html b/ietf/templates/meeting/requests.html index bfb744d0ab6..ce671f0d8cb 100644 --- a/ietf/templates/meeting/requests.html +++ b/ietf/templates/meeting/requests.html @@ -68,6 +68,9 @@

{{ session.attendees }} {% endif %} + {% if session.group.is_bof %} + BOF + {% endif %} {% if session.requested_duration %}{{ session.requested_duration|stringformat:"s"|slice:"0:4" }}{% endif %}