Commit bd54c648 by Eric Fischer

Always calculate peer median

Previously, we were only showing the "more assessments needed" message
when there were 0 assessments, but we also need to show it when there are
0 < n < must_be_graded_by assessments for the user, to prevent a blank
area on the grade report. We also supress feedback comments from peers in
this case.
parent 7a1993e4
...@@ -333,7 +333,7 @@ class GradeMixin(object): ...@@ -333,7 +333,7 @@ class GradeMixin(object):
# Fetch all the unique assessment parts # Fetch all the unique assessment parts
criterion_name = criterion['name'] criterion_name = criterion['name']
staff_assessment_part = _get_assessment_part(_('Staff Grade'), criterion_name, staff_assessment) staff_assessment_part = _get_assessment_part(_('Staff Grade'), criterion_name, staff_assessment)
if len(peer_assessments) > 0: if "peer-assessment" in assessment_steps:
peer_assessment_part = { peer_assessment_part = {
'title': _('Peer Median Grade'), 'title': _('Peer Median Grade'),
'criterion': criterion, 'criterion': criterion,
...@@ -347,11 +347,6 @@ class GradeMixin(object): ...@@ -347,11 +347,6 @@ class GradeMixin(object):
for index, peer_assessment in enumerate(peer_assessments) for index, peer_assessment in enumerate(peer_assessments)
], ],
} }
elif "peer-assessment" in assessment_steps:
peer_assessment_part = {
'title': _('Peer Median Grade'),
'option': {'label': _('Waiting for peer reviews')}
}
else: else:
peer_assessment_part = None peer_assessment_part = None
example_based_assessment_part = _get_assessment_part( example_based_assessment_part = _get_assessment_part(
...@@ -449,6 +444,11 @@ class GradeMixin(object): ...@@ -449,6 +444,11 @@ class GradeMixin(object):
# - the median score, and no explanation (it is too verbose to show an aggregate). # - the median score, and no explanation (it is too verbose to show an aggregate).
options = median_options() options = median_options()
if len(options) == 0: if len(options) == 0:
# If we weren't able to get a median option when there should be one, show the following message
# This happens when there are less than must_be_graded_by assessments made for the user
if len(criterion['options']) > 0:
return {'label': _('Waiting for peer reviews')}
else:
return None return None
if len(options) == 1: if len(options) == 1:
return options[0] return options[0]
...@@ -478,7 +478,7 @@ class GradeMixin(object): ...@@ -478,7 +478,7 @@ class GradeMixin(object):
'title': _('Staff Comments'), 'title': _('Staff Comments'),
'feedback': feedback 'feedback': feedback
}) })
if peer_assessments: if peer_assessments and len(peer_assessments) >= self.workflow_requirements()['peer']['must_be_graded_by']:
individual_feedback = [] individual_feedback = []
for peer_index, peer_assessment in enumerate(peer_assessments): for peer_index, peer_assessment in enumerate(peer_assessments):
individual_feedback.append({ individual_feedback.append({
......
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