Commit d2cd258a by David Ormsbee

Remove minor redundant queries for checking number of peer assessments…

Remove minor redundant queries for checking number of peer assessments associated with a peer workflow.
parent 67df2eab
...@@ -80,7 +80,7 @@ def is_complete(submission_uuid, requirements): ...@@ -80,7 +80,7 @@ def is_complete(submission_uuid, requirements):
workflow = PeerWorkflow.objects.get(submission_uuid=submission_uuid) workflow = PeerWorkflow.objects.get(submission_uuid=submission_uuid)
except PeerWorkflow.DoesNotExist: except PeerWorkflow.DoesNotExist:
return False return False
return _check_student_done_grading(workflow, requirements["must_grade"]) return _num_peers_graded(workflow) >= requirements["must_grade"]
def get_score(submission_uuid, requirements): def get_score(submission_uuid, requirements):
...@@ -359,11 +359,11 @@ def has_finished_required_evaluating(student_item_dict, required_assessments): ...@@ -359,11 +359,11 @@ def has_finished_required_evaluating(student_item_dict, required_assessments):
""" """
workflow = _get_latest_workflow(student_item_dict) workflow = _get_latest_workflow(student_item_dict)
done = False done = False
count = 0 peers_graded = 0
if workflow: if workflow:
done = _check_student_done_grading(workflow, required_assessments) peers_graded = _num_peers_graded(workflow)
count = workflow.items.all().exclude(assessment=-1).count() done = (peers_graded >= required_assessments)
return done, count return done, peers_graded
def get_assessments(submission_uuid, scored_only=True, limit=None): def get_assessments(submission_uuid, scored_only=True, limit=None):
...@@ -908,16 +908,14 @@ def _close_active_assessment(workflow, submission_uuid, assessment): ...@@ -908,16 +908,14 @@ def _close_active_assessment(workflow, submission_uuid, assessment):
raise PeerAssessmentWorkflowError(error_message) raise PeerAssessmentWorkflowError(error_message)
def _check_student_done_grading(workflow, must_grade): def _num_peers_graded(workflow):
"""Checks if the student has graded enough peers. """Returns the number of peers the student owning the workflow has graded.
Determines if the student has graded enough peers. Determines if the student has graded enough peers.
Args: Args:
workflow (PeerWorkflow): The workflow associated with the current workflow (PeerWorkflow): The workflow associated with the current
student. student.
must_grade (int): The number of submissions the student has to peer
assess before they are finished.
Returns: Returns:
True if the student is done peer assessing, False if not. True if the student is done peer assessing, False if not.
...@@ -930,10 +928,10 @@ def _check_student_done_grading(workflow, must_grade): ...@@ -930,10 +928,10 @@ def _check_student_done_grading(workflow, must_grade):
>>> student_id="Bob", >>> student_id="Bob",
>>> ) >>> )
>>> workflow = _get_latest_workflow(student_item_dict) >>> workflow = _get_latest_workflow(student_item_dict)
>>> _check_student_done_grading(workflow, 3) >>> _num_peers_graded(workflow, 3)
True True
""" """
return workflow.items.all().exclude(assessment=-1).count() >= must_grade return workflow.items.all().exclude(assessment=-1).count()
def get_assessment_feedback(submission_uuid): def get_assessment_feedback(submission_uuid):
......
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