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