From 6f1186672fb606e759e6b9e0b267a3363250f05d Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Tue, 5 May 2020 13:04:11 +0000 Subject: [PATCH] Merged in code from mark@painless-security.com in [17694] which provides historic_group information in the session_details() view, and a test case for same. Added 'now' information in the template dictionary, for use when rendering old (vs. upcoming) session details. Commit ready for merge. - Legacy-Id: 17738 Note: SVN reference [17694] has been migrated to Git commit 4df7e5531f8273892c71a363cf328bb324585204 --- ietf/meeting/tests_views.py | 6 ++++++ ietf/meeting/views.py | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index 9a34bf1e8..b570ffb2e 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -1091,6 +1091,12 @@ class SessionDetailsTests(TestCase): self.assertTrue(all([x in unicontent(r) for x in ('slides','agenda','minutes','draft')])) self.assertNotContains(r, 'deleted') + q = PyQuery(r.content) + self.assertTrue(q('div.session_buttons#session_%s' % session.id), + 'Session detail page does not contain session tool buttons') + self.assertFalse(q('div.session_buttons#session_%s span.fa-arrows-alt' % session.id), + 'The session detail page is incorrectly showing the "Show meeting materials" button') + def test_session_details_past_interim(self): group = GroupFactory.create(type_id='wg',state_id='active') chair = RoleFactory(name_id='chair',group=group) diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index b28bd829a..2d1ae8826 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -78,6 +78,7 @@ from ietf.secr.proceedings.utils import handle_upload_file from ietf.secr.proceedings.proc_utils import (get_progress_stats, post_process, import_audio_files, create_recording) from ietf.utils.decorators import require_api_key +from ietf.utils.history import find_history_replacements_active_at from ietf.utils.log import assertion from ietf.utils.mail import send_mail_message, send_mail_text from ietf.utils.pipe import pipe @@ -1128,9 +1129,22 @@ def session_details(request, num, acronym): if not sessions: raise Http404 + # Find the time of the meeting, so that we can look back historically + # for what the group was called at the time. + meeting_time = datetime.datetime.combine(meeting.date, datetime.time()) + + groups = list(set([ s.group for s in sessions ])) + group_replacements = find_history_replacements_active_at(groups, meeting_time) + status_names = {n.slug: n.name for n in SessionStatusName.objects.all()} for session in sessions: + session.historic_group = None + if session.group: + session.historic_group = group_replacements.get(session.group_id) + if session.historic_group: + session.historic_group.historic_parent = None + session.type_counter = Counter() ss = session.timeslotassignments.filter(schedule=meeting.schedule).order_by('timeslot__time') if ss: @@ -1183,6 +1197,7 @@ def session_details(request, num, acronym): 'can_manage_materials' : can_manage, 'can_view_request': can_view_request, 'thisweek': datetime.date.today()-datetime.timedelta(days=7), + 'now': datetime.datetime.now(), }) class SessionDraftsForm(forms.Form): @@ -2237,7 +2252,7 @@ def past(request): def upcoming(request): '''List of upcoming meetings''' - today = datetime.date.today() + today = datetime.date.today()-datetime.timedelta(days=7) # Get ietf meetings starting 7 days ago, and interim meetings starting today ietf_meetings = Meeting.objects.filter(type_id='ietf', date__gte=today-datetime.timedelta(days=7)) @@ -2274,6 +2289,7 @@ def upcoming(request): 'menu_actions': actions, 'menu_entries': menu_entries, 'selected_menu_entry': selected_menu_entry, + 'now': datetime.datetime.now() })