diff --git a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee index cfa2ef8..ca2b707 100644 --- a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee @@ -34,6 +34,7 @@ class @CombinedOpenEnded @child_type = @el.data('child-type') if @child_type=="openended" @reload_button = @$('.reload-button') + @skip_button = @$('.skip-button') @open_ended_child= @$('.open-ended-child') @@ -52,6 +53,7 @@ class @CombinedOpenEnded @submit_button.show() @reset_button.hide() @next_problem_button.hide() + @skip_button.hide() @hint_area.attr('disabled', false) if @child_type=="openended" @reload_button.hide() @@ -69,6 +71,7 @@ class @CombinedOpenEnded else if @child_state == 'post_assessment' if @child_type=="openended" @reload_button.hide() + @skip_button.show() @answer_area.attr("disabled", true) @submit_button.prop('value', 'Submit post-assessment') if @child_type=="selfassessment" @@ -79,6 +82,7 @@ class @CombinedOpenEnded @answer_area.attr("disabled", true) @hint_area.attr('disabled', true) @submit_button.hide() + @skip_button.hide() if @task_number<@task_count @next_problem() else diff --git a/common/lib/xmodule/xmodule/open_ended_module.py b/common/lib/xmodule/xmodule/open_ended_module.py index c5cc019..e1a34d2 100644 --- a/common/lib/xmodule/xmodule/open_ended_module.py +++ b/common/lib/xmodule/xmodule/open_ended_module.py @@ -106,6 +106,10 @@ class OpenEndedModule(openendedchild.OpenEndedChild): self.payload = {'grader_payload': updated_grader_payload} + def skip_post_assessment(self, get, system): + self.state=self.DONE + return {'success' : True} + def message_post(self,get, system): """ Handles a student message post (a reaction to the grade they received from an open ended grader type) @@ -389,8 +393,8 @@ class OpenEndedModule(openendedchild.OpenEndedChild): feedback_dict = self._parse_score_msg(self.history[-1].get('post_assessment', "")) if not short_feedback: return feedback_dict['feedback'] if feedback_dict['valid'] else '' - - short_feedback = self._convert_longform_feedback_to_html(json.loads(self.history[-1].get('post_assessment', ""))) + if feedback_dict['valid']: + short_feedback = self._convert_longform_feedback_to_html(json.loads(self.history[-1].get('post_assessment', ""))) return short_feedback if feedback_dict['valid'] else '' def is_submission_correct(self, score): @@ -414,6 +418,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild): 'save_answer': self.save_answer, 'score_update': self.update_score, 'save_post_assessment' : self.message_post, + 'skip_post_assessment' : self.skip_post_assessment(), } if dispatch not in handlers: diff --git a/lms/templates/open_ended.html b/lms/templates/open_ended.html index 31599ec..1235014 100644 --- a/lms/templates/open_ended.html +++ b/lms/templates/open_ended.html @@ -28,7 +28,7 @@ <div class="open-ended-alert"></div> <span id="answer_${id}"></span> - + <input name="skip" class="skip-button" type="button" value="Skip Post-Assessment"/> <input name="reload" class="reload-button" type="button" value="Recheck for Feedback" onclick="document.location.reload(true);" /> <div class="external-grader-message"> ${msg|n}