|
60 | 60 | from ietf.settings import MAILING_LIST_INFO_URL |
61 | 61 | from ietf.mailtrigger.utils import gather_relevant_expansions |
62 | 62 | from ietf.ietfauth.utils import has_role |
| 63 | +from ietf.meeting.utils import group_sessions |
63 | 64 |
|
64 | 65 | def roles(group, role_name): |
65 | 66 | return Role.objects.filter(group=group, name=role_name).select_related("email", "person") |
@@ -737,35 +738,7 @@ def meetings(request, acronym=None, group_type=None): |
737 | 738 | meeting__date__gt=four_years_ago, |
738 | 739 | type__in=['session','plenary','other']) |
739 | 740 |
|
740 | | - def sort_key(session): |
741 | | - if session.meeting.type.slug=='ietf': |
742 | | - official_sessions = session.timeslotassignments.filter(schedule=session.meeting.agenda) |
743 | | - if official_sessions: |
744 | | - return official_sessions.first().timeslot.time |
745 | | - elif session.meeting.date: |
746 | | - return datetime.datetime.combine(session.meeting.date,datetime.datetime.min.time()) |
747 | | - else: |
748 | | - return session.requested |
749 | | - else: |
750 | | - # TODO: use timeslots for interims once they have them |
751 | | - return datetime.datetime.combine(session.meeting.date,datetime.datetime.min.time()) |
752 | | - |
753 | | - for s in sessions: |
754 | | - s.time=sort_key(s) |
755 | | - |
756 | | - sessions = sorted(sessions,key=lambda s:s.time,reverse=True) |
757 | | - |
758 | | - today = datetime.date.today() |
759 | | - future = [] |
760 | | - in_progress = [] |
761 | | - past = [] |
762 | | - for s in sessions: |
763 | | - if s.meeting.date > today: |
764 | | - future.append(s) |
765 | | - elif s.meeting.end_date() >= today: |
766 | | - in_progress.append(s) |
767 | | - else: |
768 | | - past.append(s) |
| 741 | + future, in_progress, past = group_sessions(sessions) |
769 | 742 |
|
770 | 743 | can_edit = has_role(request.user,["Secretariat","Area Director"]) or group.has_role(request.user,["Chair","Secretary"]) |
771 | 744 |
|
|
0 commit comments