Commit 635fc3fc by Stephen Sanchez

Ensure a submission has been submitted before displaying a rubric anywhere.

parent 3ea44002
......@@ -72,13 +72,14 @@ class PeerAssessmentMixin(object):
"estimated_time": "20 minutes" # TODO: Need to configure this.
}
path = 'openassessmentblock/peer/oa_peer_waiting.html'
assessment = self.get_assessment_module('peer-assessment')
if assessment:
context_dict["must_grade"] = assessment["must_grade"]
student_item = self.get_student_item_dict()
student_submission = self.get_user_submission(student_item)
finished, count = peer_api.has_finished_required_evaluating(
student_item,
......@@ -87,7 +88,7 @@ class PeerAssessmentMixin(object):
context_dict["graded"] = count
if finished:
path = "openassessmentblock/peer/oa_peer_complete.html"
else:
elif student_submission:
peer_sub = self.get_peer_submission(student_item, assessment)
if peer_sub:
path = 'openassessmentblock/peer/oa_peer_assessment.html'
......@@ -98,12 +99,10 @@ class PeerAssessmentMixin(object):
else:
context_dict["submit_button_text"] = "Submit your assessment & move to response #{}".format(count + 1)
problem_open, date = self.is_open()
if not problem_open and date == "due" and not finished:
path = 'openassessmentblock/peer/oa_peer_closed.html'
return self.render_assessment(path, context_dict)
def get_peer_submission(self, student_item_dict, assessment):
......
......@@ -16,5 +16,17 @@ class SelfAssessmentMixin(object):
@XBlock.handler
def render_self_assessment(self, data, suffix=''):
return self.render_assessment('openassessmentblock/self/oa_self_assessment.html')
path = 'openassessmentblock/self/oa_self_closed.html'
context_dict = {}
student_item = self.get_student_item_dict()
student_submission = self.get_user_submission(student_item)
if student_submission:
path = 'openassessmentblock/self/oa_self_assessment.html'
context_dict = {
"rubric_instructions": self.rubric_instructions,
"rubric_criteria": self.rubric_criteria,
"estimated_time": "20 minutes", # TODO: Need to configure this.
"self_submission": student_submission,
"step_status": "Grading"
}
return self.render_assessment(path, context_dict)
......@@ -47,7 +47,7 @@ class SubmissionMixin(object):
status_text = None
student_sub = data['submission']
student_item_dict = self.get_student_item_dict()
prev_sub = self._get_user_submission(student_item_dict)
prev_sub = self.get_user_submission(student_item_dict)
status_tag = 'ENOMULTI' # It is an error to submit multiple times for the same item
if not prev_sub:
......@@ -87,7 +87,7 @@ class SubmissionMixin(object):
return scores[0] if scores else None
@staticmethod
def _get_user_submission(student_item_dict):
def get_user_submission(student_item_dict):
"""Return the most recent submission by user in student_item_dict
Given a student item, return the most recent submission. If no
......@@ -134,7 +134,7 @@ class SubmissionMixin(object):
# TODO Check if Saved
student_item = self.get_student_item_dict()
# Has the student submitted?
student_submission = self._get_user_submission(student_item)
student_submission = self.get_user_submission(student_item)
# Has it been graded yet?
student_score = self._get_submission_score(student_item)
step_status = "Graded" if student_score else "Submitted"
......
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