Commit 4f3ec68f by Vik Paruchuri

Scroll to top in peer and staff grading, preserve line breaks in submissions

parent be3291ee
...@@ -100,6 +100,7 @@ class @CombinedOpenEnded ...@@ -100,6 +100,7 @@ class @CombinedOpenEnded
open_ended_child_sel: 'section.open-ended-child' open_ended_child_sel: 'section.open-ended-child'
error_sel: '.error' error_sel: '.error'
answer_area_sel: 'textarea.answer' answer_area_sel: 'textarea.answer'
answer_area_div_sel : 'div.answer'
prompt_sel: '.prompt' prompt_sel: '.prompt'
rubric_wrapper_sel: '.rubric-wrapper' rubric_wrapper_sel: '.rubric-wrapper'
hint_wrapper_sel: '.hint-wrapper' hint_wrapper_sel: '.hint-wrapper'
...@@ -339,6 +340,21 @@ class @CombinedOpenEnded ...@@ -339,6 +340,21 @@ class @CombinedOpenEnded
find_hint_elements: -> find_hint_elements: ->
@hint_area = @$('textarea.post_assessment') @hint_area = @$('textarea.post_assessment')
replace_answer: (response) =>
if response.success
@rubric_wrapper.html(response.rubric_html)
@rubric_wrapper.show()
@rub = new Rubric(@coe)
@rub.initialize(@location)
@child_state = 'assessing'
@find_assessment_elements()
@rebind()
answer_area_div = @$(@answer_area_div_sel)
answer_area_div.html(response.student_response)
else
@can_upload_files = pre_can_upload_files
@gentle_alert response.error
save_answer: (event) => save_answer: (event) =>
@submit_button.attr("disabled",true) @submit_button.attr("disabled",true)
event.preventDefault() event.preventDefault()
...@@ -367,19 +383,9 @@ class @CombinedOpenEnded ...@@ -367,19 +383,9 @@ class @CombinedOpenEnded
data: fd data: fd
processData: false processData: false
contentType: false contentType: false
async: false
success: (response) => success: (response) =>
if response.success @replace_answer(response)
@rubric_wrapper.html(response.rubric_html)
@rubric_wrapper.show()
@rub = new Rubric(@coe)
@rub.initialize(@location)
@answer_area.html(response.student_response)
@child_state = 'assessing'
@find_assessment_elements()
@rebind()
else
@can_upload_files = pre_can_upload_files
@gentle_alert response.error
$.ajaxWithPrefix("#{@ajax_url}/save_answer",settings) $.ajaxWithPrefix("#{@ajax_url}/save_answer",settings)
else else
......
...@@ -450,7 +450,7 @@ class @PeerGradingProblem ...@@ -450,7 +450,7 @@ class @PeerGradingProblem
@submit_button.unbind('click') @submit_button.unbind('click')
@submit_button.click @submit_calibration_essay @submit_button.click @submit_calibration_essay
@scroll_to_top()
else if response.error else if response.error
@render_error(response.error) @render_error(response.error)
else else
...@@ -479,6 +479,7 @@ class @PeerGradingProblem ...@@ -479,6 +479,7 @@ class @PeerGradingProblem
@submit_button.unbind('click') @submit_button.unbind('click')
@submit_button.click @submit_grade @submit_button.click @submit_grade
@scroll_to_top()
else if response.error else if response.error
@render_error(response.error) @render_error(response.error)
else else
...@@ -573,3 +574,8 @@ class @PeerGradingProblem ...@@ -573,3 +574,8 @@ class @PeerGradingProblem
Logger.log 'peer_grading_show_question', {location: @location} Logger.log 'peer_grading_show_question', {location: @location}
new_text = "(Hide)" new_text = "(Hide)"
@question_header.text(new_text) @question_header.text(new_text)
scroll_to_top: () =>
$('html, body').animate({
scrollTop: $(".peer-grading").offset().top
}, 200)
...@@ -663,7 +663,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild): ...@@ -663,7 +663,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild):
return { return {
'success': success, 'success': success,
'error': error_message, 'error': error_message,
'student_response': data['student_answer'] 'student_response': data['student_answer'].replace("\n","<br/>")
} }
def update_score(self, data, system): def update_score(self, data, system):
......
...@@ -179,9 +179,10 @@ class OpenEndedChild(object): ...@@ -179,9 +179,10 @@ class OpenEndedChild(object):
answer = autolink_html(answer) answer = autolink_html(answer)
cleaner = Cleaner(style=True, links=True, add_nofollow=False, page_structure=True, safe_attrs_only=True, cleaner = Cleaner(style=True, links=True, add_nofollow=False, page_structure=True, safe_attrs_only=True,
host_whitelist=open_ended_image_submission.TRUSTED_IMAGE_DOMAINS, host_whitelist=open_ended_image_submission.TRUSTED_IMAGE_DOMAINS,
whitelist_tags=set(['embed', 'iframe', 'a', 'img'])) whitelist_tags=set(['embed', 'iframe', 'a', 'img', 'br']))
clean_html = cleaner.clean_html(answer) clean_html = cleaner.clean_html(answer)
clean_html = re.sub(r'</p>$', '', re.sub(r'^<p>', '', clean_html)) clean_html = re.sub(r'</p>$', '', re.sub(r'^<p>', '', clean_html))
clean_html = re.sub("\n","<br/>", clean_html)
except Exception: except Exception:
clean_html = answer clean_html = answer
return clean_html return clean_html
......
...@@ -196,7 +196,7 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild): ...@@ -196,7 +196,7 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild):
'success': success, 'success': success,
'rubric_html': self.get_rubric_html(system), 'rubric_html': self.get_rubric_html(system),
'error': error_message, 'error': error_message,
'student_response': data['student_answer'], 'student_response': data['student_answer'].replace("\n","<br/>")
} }
def save_assessment(self, data, _system): def save_assessment(self, data, _system):
......
...@@ -253,7 +253,7 @@ class @StaffGrading ...@@ -253,7 +253,7 @@ class @StaffGrading
# always clear out errors and messages on transition. # always clear out errors and messages on transition.
@error_msg = '' @error_msg = ''
@message = '' @message = ''
if response.success if response.success
if response.problem_list if response.problem_list
@problems = response.problem_list @problems = response.problem_list
...@@ -265,6 +265,7 @@ class @StaffGrading ...@@ -265,6 +265,7 @@ class @StaffGrading
@error(response.error) @error(response.error)
@render_view() @render_view()
@scroll_to_top()
get_next_submission: (location) -> get_next_submission: (location) ->
@location = location @location = location
...@@ -474,6 +475,11 @@ class @StaffGrading ...@@ -474,6 +475,11 @@ class @StaffGrading
new_text = "(Hide)" new_text = "(Hide)"
@question_header.text(new_text) @question_header.text(new_text)
scroll_to_top: () =>
$('html, body').animate({
scrollTop: $(".staff-grading").offset().top
}, 200)
# for now, just create an instance and load it... # for now, just create an instance and load it...
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
<!-- Grading View --> <!-- Grading View -->
<section class="prompt-wrapper"> <section class="prompt-wrapper">
<div class="grading-message"></div>
<h2 class="prompt-name"> <h2 class="prompt-name">
</h2> </h2>
<div class="meta-info-wrapper"> <div class="meta-info-wrapper">
...@@ -80,8 +81,9 @@ ...@@ -80,8 +81,9 @@
<input type="button" value="${_("Submit")}" class="submit-button" name="show"/> <input type="button" value="${_("Submit")}" class="submit-button" name="show"/>
<input type="button" value="${_("Skip")}" class="skip-button" name="skip"/> <input type="button" value="${_("Skip")}" class="skip-button" name="skip"/>
</div> </div>
<div class="grading-message"></div>
</div> </div>
</section> </section>
</div> </div>
\ No newline at end of file
</section>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
% if success: % if success:
% if len(problem_list) == 0: % if len(problem_list) == 0:
<div class="message-container"> <div class="message-container">
${_("You currently do not having any peer grading to do. In order to have peer grading to do, you need to have submitted a response to a peer grading problem. The instructor also needs to score the essays that are used in the 'learning to grade' process.")} ${_("You currently do not having any peer grading to do. In order to have peer grading to do, you need to have submitted a response to a peer grading problem. The instructor also needs to score the essays that are used to help you better understand the grading criteria.")}
</div> </div>
%else: %else:
<div class="problem-list-container"> <div class="problem-list-container">
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
</div> </div>
</div> </div>
<section class="grading-wrapper"> <section class="grading-wrapper">
<div class="grading-message">
</div>
<h2>${_("Student Response")}</h2> <h2>${_("Student Response")}</h2>
<div class="grading-container"> <div class="grading-container">
<div class="submission-wrapper"> <div class="submission-wrapper">
...@@ -53,8 +55,6 @@ ...@@ -53,8 +55,6 @@
<input type="button" value="${_("Submit")}" class="submit-button" name="show"/> <input type="button" value="${_("Submit")}" class="submit-button" name="show"/>
</div> </div>
</div> </div>
<div class="grading-message">
</div>
</section> </section>
</section> </section>
<!-- Calibration feedback: Shown after a calibration is sent --> <!-- Calibration feedback: Shown after a calibration is sent -->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment