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
This commit is contained in:
parent
280c356e5d
commit
6f1186672f
|
@ -1091,6 +1091,12 @@ class SessionDetailsTests(TestCase):
|
||||||
self.assertTrue(all([x in unicontent(r) for x in ('slides','agenda','minutes','draft')]))
|
self.assertTrue(all([x in unicontent(r) for x in ('slides','agenda','minutes','draft')]))
|
||||||
self.assertNotContains(r, 'deleted')
|
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):
|
def test_session_details_past_interim(self):
|
||||||
group = GroupFactory.create(type_id='wg',state_id='active')
|
group = GroupFactory.create(type_id='wg',state_id='active')
|
||||||
chair = RoleFactory(name_id='chair',group=group)
|
chair = RoleFactory(name_id='chair',group=group)
|
||||||
|
|
|
@ -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,
|
from ietf.secr.proceedings.proc_utils import (get_progress_stats, post_process, import_audio_files,
|
||||||
create_recording)
|
create_recording)
|
||||||
from ietf.utils.decorators import require_api_key
|
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.log import assertion
|
||||||
from ietf.utils.mail import send_mail_message, send_mail_text
|
from ietf.utils.mail import send_mail_message, send_mail_text
|
||||||
from ietf.utils.pipe import pipe
|
from ietf.utils.pipe import pipe
|
||||||
|
@ -1128,9 +1129,22 @@ def session_details(request, num, acronym):
|
||||||
if not sessions:
|
if not sessions:
|
||||||
raise Http404
|
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()}
|
status_names = {n.slug: n.name for n in SessionStatusName.objects.all()}
|
||||||
for session in sessions:
|
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()
|
session.type_counter = Counter()
|
||||||
ss = session.timeslotassignments.filter(schedule=meeting.schedule).order_by('timeslot__time')
|
ss = session.timeslotassignments.filter(schedule=meeting.schedule).order_by('timeslot__time')
|
||||||
if ss:
|
if ss:
|
||||||
|
@ -1183,6 +1197,7 @@ def session_details(request, num, acronym):
|
||||||
'can_manage_materials' : can_manage,
|
'can_manage_materials' : can_manage,
|
||||||
'can_view_request': can_view_request,
|
'can_view_request': can_view_request,
|
||||||
'thisweek': datetime.date.today()-datetime.timedelta(days=7),
|
'thisweek': datetime.date.today()-datetime.timedelta(days=7),
|
||||||
|
'now': datetime.datetime.now(),
|
||||||
})
|
})
|
||||||
|
|
||||||
class SessionDraftsForm(forms.Form):
|
class SessionDraftsForm(forms.Form):
|
||||||
|
@ -2237,7 +2252,7 @@ def past(request):
|
||||||
|
|
||||||
def upcoming(request):
|
def upcoming(request):
|
||||||
'''List of upcoming meetings'''
|
'''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
|
# 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))
|
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_actions': actions,
|
||||||
'menu_entries': menu_entries,
|
'menu_entries': menu_entries,
|
||||||
'selected_menu_entry': selected_menu_entry,
|
'selected_menu_entry': selected_menu_entry,
|
||||||
|
'now': datetime.datetime.now()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue