diff --git a/lms/djangoapps/open_ended_grading/staff_grading_service.py b/lms/djangoapps/open_ended_grading/staff_grading_service.py index dfadacb724..274a25142d 100644 --- a/lms/djangoapps/open_ended_grading/staff_grading_service.py +++ b/lms/djangoapps/open_ended_grading/staff_grading_service.py @@ -53,7 +53,7 @@ class MockStaffGradingService(object): ]}) - def save_grade(self, course_id, grader_id, submission_id, score, feedback, skipped, rubric_scores): + def save_grade(self, course_id, grader_id, submission_id, score, feedback, skipped, rubric_scores, submission_flagged): return self.get_next(course_id, 'fake location', grader_id) @@ -114,7 +114,7 @@ class StaffGradingService(GradingService): return json.dumps(self._render_rubric(response)) - def save_grade(self, course_id, grader_id, submission_id, score, feedback, skipped, rubric_scores): + def save_grade(self, course_id, grader_id, submission_id, score, feedback, skipped, rubric_scores, submission_flagged): """ Save a score and feedback for a submission. @@ -133,7 +133,8 @@ class StaffGradingService(GradingService): 'grader_id': grader_id, 'skipped': skipped, 'rubric_scores': rubric_scores, - 'rubric_scores_complete': True} + 'rubric_scores_complete': True, + 'submission_flagged': submission_flagged} return self.post(self.save_grade_url, data=data) @@ -292,7 +293,7 @@ def save_grade(request, course_id): if request.method != 'POST': raise Http404 - required = set(['score', 'feedback', 'submission_id', 'location', 'rubric_scores[]']) + required = set(['score', 'feedback', 'submission_id', 'location','submission_flagged', 'rubric_scores[]']) actual = set(request.POST.keys()) missing = required - actual if len(missing) > 0: @@ -313,7 +314,8 @@ def save_grade(request, course_id): p['score'], p['feedback'], skipped, - p.getlist('rubric_scores[]')) + p.getlist('rubric_scores[]'), + p['submission_flagged']) except GradingServiceError: log.exception("Error saving grade") return _err_response('Could not connect to grading service') diff --git a/lms/djangoapps/open_ended_grading/tests.py b/lms/djangoapps/open_ended_grading/tests.py index 4d220d4baa..93f2308c38 100644 --- a/lms/djangoapps/open_ended_grading/tests.py +++ b/lms/djangoapps/open_ended_grading/tests.py @@ -100,6 +100,7 @@ class TestStaffGradingService(ct.PageLoader): 'feedback': 'great!', 'submission_id': '123', 'location': self.location, + 'submission_flagged': "true", 'rubric_scores[]': ['1', '2']} r = self.check_for_post_code(200, url, data) diff --git a/lms/static/coffee/src/staff_grading/staff_grading.coffee b/lms/static/coffee/src/staff_grading/staff_grading.coffee index 117388bab0..039248e386 100644 --- a/lms/static/coffee/src/staff_grading/staff_grading.coffee +++ b/lms/static/coffee/src/staff_grading/staff_grading.coffee @@ -170,6 +170,7 @@ class @StaffGrading @feedback_area = $('.feedback-area') @score_selection_container = $('.score-selection-container') @grade_selection_container = $('.grade-selection-container') + @flag_submission_checkbox = $('.flag-checkbox') @submit_button = $('.submit-button') @action_button = $('.action-button') @@ -255,6 +256,7 @@ class @StaffGrading submission_id: @submission_id location: @location skipped: true + submission_flagged: false @backend.post('save_grade', data, @ajax_callback) get_problem_list: () -> @@ -268,6 +270,7 @@ class @StaffGrading feedback: @feedback_area.val() submission_id: @submission_id location: @location + submission_flagged: @flag_submission_checkbox.is(':checked') @backend.post('save_grade', data, @ajax_callback)