From 5e4cf500867a63ae138c688a90712d5d01d23eaf Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 30 Jul 2013 11:32:31 -0400 Subject: [PATCH] Make sure that all tab types used by the default for the course.tabs field work correctly --- lms/djangoapps/courseware/tabs.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/tabs.py b/lms/djangoapps/courseware/tabs.py index 149542c344..eb92334274 100644 --- a/lms/djangoapps/courseware/tabs.py +++ b/lms/djangoapps/courseware/tabs.py @@ -91,6 +91,13 @@ def _discussion(tab, user, course, active_page): return [] +def _external_discussion(tab, user, course, active_page): + """ + This returns a tab that links to an external discussion service + """ + return [CourseTab('Discussion', tab['link'], active_page == 'discussion')] + + def _external_link(tab, user, course, active_page): # external links are never active return [CourseTab(tab['name'], tab['link'], False)] @@ -150,6 +157,12 @@ def _staff_grading(tab, user, course, active_page): return [] +def _syllabus(tab, user, course, active_page): + """Display the syllabus tab""" + link = reverse('syllabus', args=[course.id]) + return [CourseTab('Syllabus', link, active_page == 'syllabus')] + + def _peer_grading(tab, user, course, active_page): if user.is_authenticated(): @@ -216,6 +229,7 @@ VALID_TAB_TYPES = { 'course_info': TabImpl(need_name, _course_info), 'wiki': TabImpl(need_name, _wiki), 'discussion': TabImpl(need_name, _discussion), + 'external_discussion': TabImpl(key_checker(['link']), _external_discussion), 'external_link': TabImpl(key_checker(['name', 'link']), _external_link), 'textbooks': TabImpl(null_validator, _textbooks), 'pdf_textbooks': TabImpl(null_validator, _pdf_textbooks), @@ -225,7 +239,8 @@ VALID_TAB_TYPES = { 'peer_grading': TabImpl(null_validator, _peer_grading), 'staff_grading': TabImpl(null_validator, _staff_grading), 'open_ended': TabImpl(null_validator, _combined_open_ended_grading), - 'notes': TabImpl(null_validator, _notes_tab) + 'notes': TabImpl(null_validator, _notes_tab), + 'syllabus': TabImpl(null_validator, _syllabus) }