Commit 79c8efcb by Diana Huang

Update the rubric renderer

parent bb867ba3
......@@ -10,6 +10,15 @@ class CombinedOpenEndedRubric:
self.has_score = False
self.view_only = view_only
'''
render_rubric: takes in an xml string and outputs the corresponding
html for that xml, given the type of rubric we're generating
Input:
rubric_xml: an string that has not been parsed into xml that
represents this particular rubric
Output:
html: the html that corresponds to the xml given
'''
def render_rubric(self, rubric_xml):
try:
rubric_categories = self.extract_categories(rubric_xml)
......@@ -34,11 +43,9 @@ class CombinedOpenEndedRubric:
{text: "Option 3 Name", points: 2]}]
'''
if element.tag != 'rubric':
raise Exception("[extract_categories] Expected a <rubric> tag: got {0} instead".format(element.tag))
categorylist = list(element)
element = etree.fromstring(element)
categories = []
for category in categorylist:
for category in element:
if category.tag != 'category':
raise Exception("[extract_categories] Expected a <category> tag: got {0} instead".format(category.tag))
else:
......
......@@ -382,7 +382,8 @@ class OpenEndedModule(openendedchild.OpenEndedChild):
rubric_feedback=""
feedback = self._convert_longform_feedback_to_html(response_items)
if response_items['rubric_scores_complete']==True:
rubric_feedback = CombinedOpenEndedRubric.render_rubric(response_items['rubric_xml'])
rubric_renderer = CombinedOpenEndedRubric(True)
rubric_feedback = rubric_renderer.render_rubric(response_items['rubric_xml'])
if not response_items['success']:
return system.render_template("open_ended_error.html",
......
......@@ -122,7 +122,9 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild):
if self.state == self.INITIAL:
return ''
rubric_html = CombinedOpenEndedRubric.render_rubric(self.rubric)
rubric_renderer = CombinedOpenEndedRubric(True)
rubric_html = rubric_renderer.render_rubric(self.rubric)
# we'll render it
context = {'rubric': rubric_html,
......
......@@ -264,8 +264,7 @@ def _get_next(course_id, grader_id, location):
response_json = json.loads(response)
rubric = response_json['rubric']
rubric_renderer = CombinedOpenEndedRubric(False)
rubric_xml = etree.XML(rubric)
rubric_html = rubric_renderer.render_rubric(rubric_xml)
rubric_html = rubric_renderer.render_rubric(rubric)
response_json['rubric'] = rubric_html
return json.dumps(response_json)
except GradingServiceError:
......
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