Skip to content

Commit 3c19190

Browse files
authored
fix: stable and correct ordering of agenda items (ietf-tools#4621)
* fix: align session sorting across functions * fix: sessions of a group can have different types
1 parent 5ac3874 commit 3c19190

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

ietf/meeting/models.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1105,8 +1105,18 @@ def all_meeting_sessions_for_group(self):
11051105
from ietf.meeting.utils import add_event_info_to_session_qs
11061106
if self.group.features.has_meetings:
11071107
if not hasattr(self, "_all_meeting_sessions_for_group_cache"):
1108-
sessions = [s for s in add_event_info_to_session_qs(self.meeting.session_set.filter(group=self.group,type=self.type)) if s.official_timeslotassignment()]
1109-
self._all_meeting_sessions_for_group_cache = sorted(sessions, key = lambda x: x.official_timeslotassignment().timeslot.time)
1108+
sessions = [s for s in add_event_info_to_session_qs(self.meeting.session_set.filter(group=self.group)) if s.official_timeslotassignment()]
1109+
for s in sessions:
1110+
s.ota = s.official_timeslotassignment()
1111+
# Align this sort with SchedTimeSessAssignment default sort order since many views base their order on that
1112+
self._all_meeting_sessions_for_group_cache = sorted(
1113+
sessions, key = lambda x: (
1114+
x.ota.timeslot.time,
1115+
x.ota.timeslot.type.slug,
1116+
x.ota.session.group.parent.name if x.ota.session.group.parent else None,
1117+
x.ota.session.name
1118+
)
1119+
)
11101120
return self._all_meeting_sessions_for_group_cache
11111121
else:
11121122
return [self]

0 commit comments

Comments
 (0)