From 44ee0200a59547c69bf02f6606461b2ce6b37e0f Mon Sep 17 00:00:00 2001 From: Victor Shnayder Date: Wed, 22 Aug 2012 20:19:58 -0400 Subject: [PATCH 1/2] Fix undefined variables if LMS_MIGRATION was off --- common/djangoapps/xmodule_modifiers.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/djangoapps/xmodule_modifiers.py b/common/djangoapps/xmodule_modifiers.py index 86443520c2..17380bff18 100644 --- a/common/djangoapps/xmodule_modifiers.py +++ b/common/djangoapps/xmodule_modifiers.py @@ -112,6 +112,9 @@ def add_histogram(get_html, module, user): edit_link = "%s/%s/tree/master/%s" % (giturl,data_dir,filepath) else: edit_link = False + # Need to define all the variables that are about to be used + giturl = "" + data_dir = "" source_file = module.metadata.get('source_file','') # source used to generate the problem XML, eg latex or word staff_context = {'definition': module.definition.get('data'), From 1b25433a39e15bd0b7667c51c0527af666ed2a54 Mon Sep 17 00:00:00 2001 From: Victor Shnayder Date: Wed, 22 Aug 2012 20:21:10 -0400 Subject: [PATCH 2/2] Allow error-template-rendering errors to propagate to top-level 500 handler * hopefully won't come up, but if they do, our 500 page should be better than HttpResponse("There was an unrecoverable error") --- lms/djangoapps/courseware/views.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lms/djangoapps/courseware/views.py b/lms/djangoapps/courseware/views.py index 640dd7c08d..ca3260dbe7 100644 --- a/lms/djangoapps/courseware/views.py +++ b/lms/djangoapps/courseware/views.py @@ -187,7 +187,10 @@ def index(request, course_id, chapter=None, section=None, {'staff_access': staff_access, 'course' : course}) except: - result = HttpResponse("There was an unrecoverable error") + # Let the exception propagate, relying on global config to at + # at least return a nice error message + log.exception("Error while rendering courseware-error page") + raise return result @@ -397,7 +400,7 @@ def instructor_dashboard(request, course_id): @ensure_csrf_cookie @cache_control(no_cache=True, no_store=True, must_revalidate=True) def enroll_students(request, course_id): - ''' Allows a staff member to enroll students in a course. + ''' Allows a staff member to enroll students in a course. This is a short-term hack for Berkeley courses launching fall 2012. In the long term, we would like functionality like this, but @@ -417,20 +420,20 @@ def enroll_students(request, course_id): else: new_students = [] new_students = [s.strip() for s in new_students] - + added_students = [] rejected_students = [] for student in new_students: - try: + try: nce = CourseEnrollment(user=User.objects.get(email = student), course_id = course_id) nce.save() added_students.append(student) - except: + except: rejected_students.append(student) - - return render_to_response("enroll_students.html", {'course':course_id, - 'existing_students': existing_students, + + return render_to_response("enroll_students.html", {'course':course_id, + 'existing_students': existing_students, 'added_students': added_students, 'rejected_students': rejected_students, 'debug':new_students})