diff --git a/common/lib/capa/capa/responsetypes.py b/common/lib/capa/capa/responsetypes.py
index aec90627f2..ec3f4763d5 100644
--- a/common/lib/capa/capa/responsetypes.py
+++ b/common/lib/capa/capa/responsetypes.py
@@ -2028,6 +2028,46 @@ class OpenEndedResponse(LoncapaResponse):
def get_initial_display(self):
return {self.answer_id: self.initial_display}
+ def _convert_longform_feedback_to_html(response_items):
+ """
+ Take in a dictionary, and return html formatted strings appropriate for sending via xqueue.
+ Input:
+ Dictionary with keys success, feedback, and errors
+ Output:
+ String
+ """
+
+ feedback_item_start='
'
+ feedback_item_end='
'
+
+ for tag in ['status', 'feedback']:
+ if tag not in response_items:
+ feedback_long=feedback_item_start.format(feedback_key="errors") + "Error getting feedback." + feedback_item_end
+
+ feedback_items=response_items['feedback']
+ try:
+ feedback_items=json.loads(feedback_items)
+ except:
+ pass
+
+ success=response_items['success']
+
+ if success:
+ feedback_long=""
+ for k,v in feedback_items.items():
+ feedback_long+=feedback_item_start.format(feedback_key=k)
+ feedback_long+=str(v)
+ feedback_long+=feedback_item_end
+
+ if len(feedback_items)==0:
+ feedback_long=feedback_item_start.format(feedback_key="feedback") + "No feedback available." + feedback_item_end
+
+ else:
+ feedback_long=feedback_item_start.format(feedback_key="errors") + response_items['feedback'] + feedback_item_end
+
+ return feedback_long
+
+
def _format_feedback(self, response_items):
"""
Input:
@@ -2036,11 +2076,10 @@ class OpenEndedResponse(LoncapaResponse):
Return error message or feedback template
"""
+ feedback=self._convert_longform_feedback_to_html(response_items)
+
if not response_items['success']:
- return render_to_string("open_ended_error.html", {'errors' : response_items['feedback']})
-
-
- feedback=response_items['feedback']
+ return render_to_string("open_ended_error.html", {'errors' : feedback})
feedback_template=render_to_string("open_ended_feedback.html",{
'grader_type' : response_items['grader_type'],