From 457afaaedab2f57fe7a872b5ef37ebc2323c7e75 Mon Sep 17 00:00:00 2001 From: Vik Paruchuri Date: Tue, 22 Jan 2013 14:14:28 -0500 Subject: [PATCH] Making tab render properly for open ended notifications --- lms/djangoapps/courseware/tabs.py | 1 + lms/djangoapps/open_ended_grading/views.py | 19 ++++++++++++++++++- .../open_ended_problems.html | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lms/djangoapps/courseware/tabs.py b/lms/djangoapps/courseware/tabs.py index 3aa502e95e..b1e56ead08 100644 --- a/lms/djangoapps/courseware/tabs.py +++ b/lms/djangoapps/courseware/tabs.py @@ -181,6 +181,7 @@ VALID_TAB_TYPES = { 'static_tab': TabImpl(key_checker(['name', 'url_slug']), _static_tab), 'peer_grading': TabImpl(null_validator, _peer_grading), 'staff_grading': TabImpl(null_validator, _staff_grading), + 'open_ended': TabImpl(null_validator, _combined_open_ended_grading), } diff --git a/lms/djangoapps/open_ended_grading/views.py b/lms/djangoapps/open_ended_grading/views.py index 84bf14bf0e..29c3c3ebd3 100644 --- a/lms/djangoapps/open_ended_grading/views.py +++ b/lms/djangoapps/open_ended_grading/views.py @@ -22,6 +22,9 @@ from student.models import unique_id_for_user import open_ended_util import open_ended_notifications +from xmodule.modulestore.django import modulestore +from xmodule.modulestore import search + log = logging.getLogger(__name__) template_imports = {'urllib': urllib} @@ -137,6 +140,8 @@ def student_problem_list(request, course_id): success = False error_text = "" problem_list = [] + base_course_url = reverse('courses') + try: problem_list_json = controller_qs.get_grading_status_list(course_id, unique_id_for_user(request.user)) problem_list_dict = json.loads(problem_list_json) @@ -146,6 +151,19 @@ def student_problem_list(request, course_id): problem_list = problem_list_dict['problem_list'] + for i in xrange(0,len(problem_list)): + problem_url_parts = search.path_to_location(modulestore(), course.id, problem_list[i]['location']) + log.debug(problem_url_parts) + problem_url = base_course_url + "/" + for z in xrange(0,len(problem_url_parts)): + part = problem_url_parts[z] + if part is not None: + if z==1: + problem_url += "courseware/" + problem_url += part + "/" + + problem_list[i].update({'actual_url' : problem_url}) + except GradingServiceError: error_text = "Error occured while contacting the grading service" success = False @@ -171,7 +189,6 @@ def combined_notifications(request, course_id): course = get_course_with_access(request.user, course_id, 'load') user = request.user notifications = open_ended_notifications.combined_notifications(course, user) - log.debug(notifications) response = notifications['response'] notification_tuples=open_ended_notifications.NOTIFICATION_TYPES diff --git a/lms/templates/open_ended_problems/open_ended_problems.html b/lms/templates/open_ended_problems/open_ended_problems.html index ec648afab8..da309664eb 100644 --- a/lms/templates/open_ended_problems/open_ended_problems.html +++ b/lms/templates/open_ended_problems/open_ended_problems.html @@ -26,7 +26,7 @@