Prevent student from resetting problem unless they have completed required peer grading. Grant an exemption if there is no available peer grading.

This commit is contained in:
Vik Paruchuri
2013-08-09 08:18:23 -04:00
parent e39abe11db
commit adbfdccee8
2 changed files with 6 additions and 3 deletions

View File

@@ -516,6 +516,7 @@ class CombinedOpenEndedV1Module():
count_graded = response['count_graded']
count_required = response['count_required']
student_sub_count = response['student_sub_count']
count_available = response['count_available']
success = True
except:
# This is a dev_facing_error
@@ -524,7 +525,7 @@ class CombinedOpenEndedV1Module():
# This is a student_facing_error
error_message = "Could not contact the graders. Please notify course staff."
return success, allowed_to_submit, error_message
if count_graded >= count_required:
if count_graded >= count_required or count_available==0:
return success, allowed_to_submit, ""
else:
allowed_to_submit = False
@@ -687,7 +688,9 @@ class CombinedOpenEndedV1Module():
if self.state != self.DONE:
if not self.ready_to_reset:
return self.out_of_sync_error(data)
success, can_reset, error = self.check_if_student_has_done_needed_grading()
if not can_reset:
return {'error' : error, 'success' : False}
if self.student_attempts >= self.max_attempts-1:
if self.student_attempts==self.max_attempts-1:
self.student_attempts +=1

View File

@@ -124,4 +124,4 @@ class MockPeerGradingService(object):
]}
def get_data_for_location(self, problem_location, student_id):
return {"version": 1, "count_graded": 3, "count_required": 3, "success": True, "student_sub_count": 1}
return {"version": 1, "count_graded": 3, "count_required": 3, "success": True, "student_sub_count": 1, 'submissions_available' : 0}