diff --git a/lms/djangoapps/courseware/course_settings.py b/lms/djangoapps/courseware/course_settings.py index a58fc9042e..d9876677d6 100644 --- a/lms/djangoapps/courseware/course_settings.py +++ b/lms/djangoapps/courseware/course_settings.py @@ -71,6 +71,7 @@ class Settings(object): # Load the course settings as a dictionary course_settings = {} try: + # TODO: this doesn't work with multicourse with open( settings.DATA_DIR + "/course_settings.json") as course_settings_file: course_settings_string = course_settings_file.read() course_settings = json.loads(course_settings_string) diff --git a/lms/djangoapps/courseware/views.py b/lms/djangoapps/courseware/views.py index f043c3bc8c..b0cc639d29 100644 --- a/lms/djangoapps/courseware/views.py +++ b/lms/djangoapps/courseware/views.py @@ -165,7 +165,8 @@ def get_course(request, course): if not settings.ENABLE_MULTICOURSE: course = "edx4edx" elif 'coursename' in request.session: - course = request.session['coursename'] + # use multicourse_settings, so that settings.COURSE_TITLE is set properly + course = multicourse_settings.get_coursename_from_request(request) else: course = settings.COURSE_DEFAULT return course @@ -287,6 +288,17 @@ def index(request, course=None, chapter=None, section=None, # keep track of current course being viewed in django's request.session request.session['coursename'] = course + # get default chapter & section from multicourse settings, if not provided + if chapter is None: + defchapter = multicourse_settings.get_course_default_chapter(course) + defsection = multicourse_settings.get_course_default_section(course) + if defchapter and defsection: + # jump there using redirect, so the user gets the right URL in their browser + return redirect('%s/courseware/%s/%s/%s/' % (settings.MITX_ROOT_URL, + get_course(request, course), + defchapter, + defsection)) + chapter = clean(chapter) section = clean(section) diff --git a/lms/djangoapps/multicourse/multicourse_settings.py b/lms/djangoapps/multicourse/multicourse_settings.py index 924d8448e6..5b8ca8a1bf 100644 --- a/lms/djangoapps/multicourse/multicourse_settings.py +++ b/lms/djangoapps/multicourse/multicourse_settings.py @@ -80,5 +80,11 @@ def get_course_number(coursename): def get_course_github_url(coursename): return get_course_property(coursename,'github_url') + +def get_course_default_chapter(coursename): + return get_course_property(coursename,'default_chapter') + +def get_course_default_section(coursename): + return get_course_property(coursename,'default_section') diff --git a/lms/envs/dev_ike.py b/lms/envs/dev_ike.py index d9ae073c24..6d4d276501 100644 --- a/lms/envs/dev_ike.py +++ b/lms/envs/dev_ike.py @@ -42,51 +42,67 @@ MAKO_TEMPLATES['course'] = [DATA_DIR, EDX4EDX_ROOT ] MITX_FEATURES['DISPLAY_HISTOGRAMS_TO_STAFF'] = False MITX_FEATURES['DISPLAY_EDIT_LINK'] = True -COURSE_SETTINGS = {'6.002_Spring_2012': {'number' : '6.002x', +COURSE_SETTINGS = {'6.002_Fall_2012': {'number' : '6.002x', 'title' : 'Circuits and Electronics', - 'xmlpath': '/6002x/', + 'xmlpath': '/6002x-fall-2012/', 'active' : True, + 'default_chapter' : 'Week_1', + 'default_section' : 'Administrivia_and_Circuit_Elements', }, '8.02_Spring_2013': {'number' : '8.02x', 'title' : 'Electricity & Magnetism', 'xmlpath': '/802x/', 'github_url': 'https://github.com/MITx/8.02x', 'active' : True, + 'default_chapter' : 'Introduction', + 'default_section' : 'Introduction_%28Lewin_2002%29', }, '6.189_Spring_2013': {'number' : '6.189x', 'title' : 'IAP Python Programming', 'xmlpath': '/6.189x/', 'github_url': 'https://github.com/MITx/6.189x', 'active' : True, + 'default_chapter' : 'Week_1', + 'default_section' : 'Variables_and_Binding', }, '8.01_Fall_2012': {'number' : '8.01x', 'title' : 'Mechanics', 'xmlpath': '/8.01x/', 'github_url': 'https://github.com/MITx/8.01x', 'active': True, + 'default_chapter' : 'MIT_8.011_Spring_2012', + 'default_section' : 'Introduction_to_the_course', }, 'edx4edx': {'number' : 'edX.01', 'title' : 'edx4edx: edX Author Course', 'xmlpath': '/edx4edx/', 'github_url': 'https://github.com/MITx/edx4edx', 'active' : True, + 'default_chapter' : 'Introduction', + 'default_section' : 'edx4edx_Course', }, '7.03x_Fall_2012': {'number' : '7.03x', 'title' : 'Genetics', 'xmlpath': '/7.03x/', 'github_url': 'https://github.com/MITx/7.03x', 'active' : True, + 'default_chapter' : 'Week_2', + 'default_section' : 'ps1_question_1', }, '3.091x_Fall_2012': {'number' : '3.091x', 'title' : 'Introduction to Solid State Chemistry', 'xmlpath': '/3.091x/', 'github_url': 'https://github.com/MITx/3.091x', 'active' : True, + 'default_chapter' : 'Week_1', + 'default_section' : 'Problem_Set_1', }, '18.06x_Linear_Algebra': {'number' : '18.06x', 'title' : 'Linear Algebra', 'xmlpath': '/18.06x/', 'github_url': 'https://github.com/MITx/18.06x', + 'default_chapter' : 'Unit_1', + 'default_section' : 'Midterm_1', 'active' : True, }, '6.00x_Fall_2012': {'number' : '6.00x', @@ -94,6 +110,8 @@ COURSE_SETTINGS = {'6.002_Spring_2012': {'number' : '6.002x', 'xmlpath': '/6.00x/', 'github_url': 'https://github.com/MITx/6.00x', 'active' : True, + 'default_chapter' : 'Week_0', + 'default_section' : 'Problem_Set_0', }, }