Repository: ietf-tools/datatracker

Issue:
RSWG does not appear on meeting proceedings
RSWG does not currently show up in the proceedings for the IETF meetings during which it met.

It should.

In the meantime, the meeting materials can be found via, for example, https://datatracker.ietf.org/meeting/116/session/rswg


Discussion:
Should this go under a new section "RFC Editor"?
[IETF 114 rsab](https://datatracker.ietf.org/meeting/114/session/rsab) is missing in [IETF 114 proceedings](https://datatracker.ietf.org/meeting/114/proceedings).
As discussed with @rjsparks, `rsab` and `rswg` proceedings will appear under a new section "Editorial Stream".

Resolving patch:
diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py
--- a/ietf/meeting/views.py
+++ b/ietf/meeting/views.py
@@ -3777,6 +3777,10 @@ def proceedings(request, num=None):
         sessions.filter(group__parent__acronym = 'iab')
         .exclude(current_status='notmeet')
     )
+    editorial, _ = organize_proceedings_sessions(
+        sessions.filter(group__acronym__in=['rsab','rswg'])
+        .exclude(current_status='notmeet')
+    )
 
     ietf = sessions.filter(group__parent__type__slug = 'area').exclude(group__acronym='edu').order_by('group__parent__acronym', 'group__acronym')
     ietf_areas = []
@@ -3796,6 +3800,7 @@ def proceedings(request, num=None):
             'training': training,
             'irtf': irtf,
             'iab': iab,
+            'editorial': editorial,
             'ietf_areas': ietf_areas,
             'cut_off_date': cut_off_date,
             'cor_cut_off_date': cor_cut_off_date,


Test patch:
diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py
--- a/ietf/meeting/tests_views.py
+++ b/ietf/meeting/tests_views.py
@@ -7632,6 +7632,13 @@ def _assertProceedingsMaterialsDisplayed(self, response, meeting):
             'Correct title and link for each ProceedingsMaterial should appear in the correct order'
         )
 
+    def _assertGroupSessions(self, response, meeting):
+        """Checks that group/sessions are present"""
+        pq = PyQuery(response.content)
+        sections = ["plenaries", "gen", "iab", "editorial", "irtf", "training"]
+        for section in sections:
+            self.assertEqual(len(pq(f"#{section}")), 1, f"{section} section should exists in proceedings")
+
     def test_proceedings(self):
         """Proceedings should be displayed correctly
 
@@ -7645,6 +7652,20 @@ def test_proceedings(self):
         SessionPresentationFactory(document__type_id='recording',session=session)
         SessionPresentationFactory(document__type_id='recording',session=session,document__title="Audio recording for tests")
 
+        # Add various group sessions
+        groups = []
+        parent_groups = [
+                GroupFactory.create(type_id="area", acronym="gen"),
+                GroupFactory.create(acronym="iab"),
+                GroupFactory.create(acronym="irtf"),
+                ]
+        for parent in parent_groups:
+            groups.append(GroupFactory.create(parent=parent))
+        for acronym in ["rsab", "edu"]:
+            groups.append(GroupFactory.create(acronym=acronym))
+        for group in groups:
+            SessionFactory(meeting=meeting, group=group)
+
         self.write_materials_files(meeting, session)
         self._create_proceedings_materials(meeting)
 
@@ -7691,6 +7712,7 @@ def test_proceedings(self):
         # configurable contents
         self._assertMeetingHostsDisplayed(r, meeting)
         self._assertProceedingsMaterialsDisplayed(r, meeting)
+        self._assertGroupSessions(r, meeting)
 
     def test_named_session(self):
         """Session with a name should appear separately in the proceedings"""