diff --git a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee
index e846717030..b4f72a3e1d 100644
--- a/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee
+++ b/common/lib/xmodule/xmodule/js/src/combinedopenended/display.coffee
@@ -100,6 +100,7 @@ class @CombinedOpenEnded
open_ended_child_sel: 'section.open-ended-child'
error_sel: '.error'
answer_area_sel: 'textarea.answer'
+ answer_area_div_sel : 'div.answer'
prompt_sel: '.prompt'
rubric_wrapper_sel: '.rubric-wrapper'
hint_wrapper_sel: '.hint-wrapper'
@@ -339,6 +340,21 @@ class @CombinedOpenEnded
find_hint_elements: ->
@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) =>
@submit_button.attr("disabled",true)
event.preventDefault()
@@ -367,19 +383,9 @@ class @CombinedOpenEnded
data: fd
processData: false
contentType: false
+ async: false
success: (response) =>
- if response.success
- @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
+ @replace_answer(response)
$.ajaxWithPrefix("#{@ajax_url}/save_answer",settings)
else
diff --git a/common/lib/xmodule/xmodule/js/src/peergrading/peer_grading_problem.coffee b/common/lib/xmodule/xmodule/js/src/peergrading/peer_grading_problem.coffee
index a026cafd61..f96704037e 100644
--- a/common/lib/xmodule/xmodule/js/src/peergrading/peer_grading_problem.coffee
+++ b/common/lib/xmodule/xmodule/js/src/peergrading/peer_grading_problem.coffee
@@ -450,7 +450,7 @@ class @PeerGradingProblem
@submit_button.unbind('click')
@submit_button.click @submit_calibration_essay
-
+ @scroll_to_top()
else if response.error
@render_error(response.error)
else
@@ -479,6 +479,7 @@ class @PeerGradingProblem
@submit_button.unbind('click')
@submit_button.click @submit_grade
+ @scroll_to_top()
else if response.error
@render_error(response.error)
else
@@ -573,3 +574,8 @@ class @PeerGradingProblem
Logger.log 'peer_grading_show_question', {location: @location}
new_text = "(Hide)"
@question_header.text(new_text)
+
+ scroll_to_top: () =>
+ $('html, body').animate({
+ scrollTop: $(".peer-grading").offset().top
+ }, 200)
diff --git a/common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py b/common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py
index dc2c3fb01b..800789b56a 100644
--- a/common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py
+++ b/common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py
@@ -663,7 +663,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild):
return {
'success': success,
'error': error_message,
- 'student_response': data['student_answer']
+ 'student_response': data['student_answer'].replace("\n","
")
}
def update_score(self, data, system):
diff --git a/common/lib/xmodule/xmodule/open_ended_grading_classes/openendedchild.py b/common/lib/xmodule/xmodule/open_ended_grading_classes/openendedchild.py
index 3e12b4656d..d99e466886 100644
--- a/common/lib/xmodule/xmodule/open_ended_grading_classes/openendedchild.py
+++ b/common/lib/xmodule/xmodule/open_ended_grading_classes/openendedchild.py
@@ -179,9 +179,10 @@ class OpenEndedChild(object):
answer = autolink_html(answer)
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,
- whitelist_tags=set(['embed', 'iframe', 'a', 'img']))
+ whitelist_tags=set(['embed', 'iframe', 'a', 'img', 'br']))
clean_html = cleaner.clean_html(answer)
clean_html = re.sub(r'
', '', clean_html))
+ clean_html = re.sub("\n","
", clean_html)
except Exception:
clean_html = answer
return clean_html
diff --git a/common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py b/common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py
index 5c40aca116..2485fc77ea 100644
--- a/common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py
+++ b/common/lib/xmodule/xmodule/open_ended_grading_classes/self_assessment_module.py
@@ -196,7 +196,7 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild):
'success': success,
'rubric_html': self.get_rubric_html(system),
'error': error_message,
- 'student_response': data['student_answer'],
+ 'student_response': data['student_answer'].replace("\n","
")
}
def save_assessment(self, data, _system):
diff --git a/lms/static/coffee/src/staff_grading/staff_grading.coffee b/lms/static/coffee/src/staff_grading/staff_grading.coffee
index e8cee60001..31c084ffd0 100644
--- a/lms/static/coffee/src/staff_grading/staff_grading.coffee
+++ b/lms/static/coffee/src/staff_grading/staff_grading.coffee
@@ -253,7 +253,7 @@ class @StaffGrading
# always clear out errors and messages on transition.
@error_msg = ''
@message = ''
-
+
if response.success
if response.problem_list
@problems = response.problem_list
@@ -265,6 +265,7 @@ class @StaffGrading
@error(response.error)
@render_view()
+ @scroll_to_top()
get_next_submission: (location) ->
@location = location
@@ -474,6 +475,11 @@ class @StaffGrading
new_text = "(Hide)"
@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...
diff --git a/lms/templates/instructor/staff_grading.html b/lms/templates/instructor/staff_grading.html
index bb60bddeb0..15ea97332a 100644
--- a/lms/templates/instructor/staff_grading.html
+++ b/lms/templates/instructor/staff_grading.html
@@ -38,6 +38,7 @@
-