From a5f0259072e6fe391303b8142a5d2571010b7843 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Thu, 27 Oct 2022 15:03:14 -0300 Subject: [PATCH] fix: stabilize sorts of upcoming meetings (#4661) * fix: stabilize upcoming meeting sort * fix: stabilize upcoming meeting ical sort --- ietf/meeting/views.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 1ed4d5be0..04b853b61 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -3467,8 +3467,12 @@ def upcoming(request): entries = list(ietf_meetings) entries.extend(list(interim_sessions)) - entries.sort(key = lambda o: pytz.utc.localize(datetime.datetime.combine(o.date, datetime.datetime.min.time())) if isinstance(o,Meeting) else o.official_timeslotassignment().timeslot.utc_start_time()) - + entries.sort( + key=lambda o: ( + pytz.utc.localize(datetime.datetime.combine(o.date, datetime.datetime.min.time())) if isinstance(o, Meeting) else o.official_timeslotassignment().timeslot.utc_start_time(), + o.number if isinstance(o, Meeting) else o.meeting.number, + ) + ) for o in entries: if isinstance(o, Meeting): o.start_timestamp = int(pytz.utc.localize(datetime.datetime.combine(o.date, datetime.time.min)).timestamp()) @@ -3531,7 +3535,7 @@ def upcoming_ical(request): session__in=[s.pk for m in meetings for s in m.sessions if m.type_id != 'ietf'], timeslot__time__gte=today, ).order_by( - 'schedule__meeting__date', 'session__type', 'timeslot__time' + 'schedule__meeting__date', 'session__type', 'timeslot__time', 'schedule__meeting__number', ).select_related( 'session__group', 'session__group__parent', 'timeslot', 'schedule', 'schedule__meeting' ).distinct())