Commit 4b5457c9 by Vik Paruchuri

Fixing some rubric score errors

parent 4a897d4e
...@@ -441,6 +441,10 @@ class CombinedOpenEndedV1Module(): ...@@ -441,6 +441,10 @@ class CombinedOpenEndedV1Module():
else: else:
last_post_evaluation = task.format_feedback_with_evaluation(self.system, last_post_assessment) last_post_evaluation = task.format_feedback_with_evaluation(self.system, last_post_assessment)
last_post_assessment = last_post_evaluation last_post_assessment = last_post_evaluation
rubric_scores = task._parse_score_msg(task.history[-1].get('post_assessment', ""), self.system)['rubric_scores']
elif task_type== "selfassessment":
rubric_scores = last_post_assessment
last_post_assessment = ""
last_correctness = task.is_last_response_correct() last_correctness = task.is_last_response_correct()
max_score = task.max_score() max_score = task.max_score()
state = task.state state = task.state
...@@ -465,8 +469,9 @@ class CombinedOpenEndedV1Module(): ...@@ -465,8 +469,9 @@ class CombinedOpenEndedV1Module():
'correct': last_correctness, 'correct': last_correctness,
'min_score_to_attempt': min_score_to_attempt, 'min_score_to_attempt': min_score_to_attempt,
'max_score_to_attempt': max_score_to_attempt, 'max_score_to_attempt': max_score_to_attempt,
'rubric_scores' : rubric_scores,
} }
log.debug(last_response_dict)
return last_response_dict return last_response_dict
def update_task_states(self): def update_task_states(self):
......
...@@ -45,7 +45,9 @@ class CombinedOpenEndedRubric(object): ...@@ -45,7 +45,9 @@ class CombinedOpenEndedRubric(object):
return {'success' : success, 'html' : html, 'rubric_scores' : rubric_scores} return {'success' : success, 'html' : html, 'rubric_scores' : rubric_scores}
def check_if_rubric_is_parseable(self, rubric_string, location, max_score_allowed, max_score): def check_if_rubric_is_parseable(self, rubric_string, location, max_score_allowed, max_score):
success, rubric_feedback = self.render_rubric(rubric_string) rubric_dict = self.render_rubric(rubric_string)
success = rubric_dict['success']
rubric_feedback = rubric_dict['html']
if not success: if not success:
error_message = "Could not parse rubric : {0} for location {1}".format(rubric_string, location.url()) error_message = "Could not parse rubric : {0} for location {1}".format(rubric_string, location.url())
log.error(error_message) log.error(error_message)
......
...@@ -386,6 +386,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild): ...@@ -386,6 +386,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild):
rubric_feedback = "" rubric_feedback = ""
feedback = self._convert_longform_feedback_to_html(response_items) feedback = self._convert_longform_feedback_to_html(response_items)
rubric_scores = []
if response_items['rubric_scores_complete'] == True: if response_items['rubric_scores_complete'] == True:
rubric_renderer = CombinedOpenEndedRubric(system, True) rubric_renderer = CombinedOpenEndedRubric(system, True)
rubric_dict = rubric_renderer.render_rubric(response_items['rubric_xml']) rubric_dict = rubric_renderer.render_rubric(response_items['rubric_xml'])
...@@ -428,7 +429,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild): ...@@ -428,7 +429,7 @@ class OpenEndedModule(openendedchild.OpenEndedChild):
correct: Correctness of submission (Boolean) correct: Correctness of submission (Boolean)
score: Points to be assigned (numeric, can be float) score: Points to be assigned (numeric, can be float)
""" """
fail = {'valid': False, 'score': 0, 'feedback': ''} fail = {'valid': False, 'score': 0, 'feedback': '', 'rubric_scores' : []}
try: try:
score_result = json.loads(score_msg) score_result = json.loads(score_msg)
except (TypeError, ValueError): except (TypeError, ValueError):
......
...@@ -257,6 +257,7 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild): ...@@ -257,6 +257,7 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild):
def save_hint(self, get, system): def save_hint(self, get, system):
''' '''
Not used currently, as hints have been removed from the system.
Save the hint. Save the hint.
Returns a dict { 'success': bool, Returns a dict { 'success': bool,
'message_html': message_html, 'message_html': message_html,
...@@ -277,6 +278,15 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild): ...@@ -277,6 +278,15 @@ class SelfAssessmentModule(openendedchild.OpenEndedChild):
'message_html': self.get_message_html(), 'message_html': self.get_message_html(),
'allow_reset': self._allow_reset()} 'allow_reset': self._allow_reset()}
def latest_post_assessment(self, system):
latest_post_assessment = super(SelfAssessmentModule, self).latest_post_assessment(system)
try:
rubric_scores = json.loads(latest_post_assessment)
except:
log.error("Cannot parse rubric scores in self assessment module from {0}".format(latest_post_assessment))
rubric_scores = []
return [rubric_scores]
class SelfAssessmentDescriptor(XmlDescriptor, EditingDescriptor): class SelfAssessmentDescriptor(XmlDescriptor, EditingDescriptor):
""" """
......
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