MDL-46842 assign: Fix for unit tests - previous patch was completely ignoring manually reopening attempts.

This commit is contained in:
Damyon Wiese
2014-08-26 10:36:27 +08:00
parent b5570e07ca
commit 8e2d62e5e2
+8 -5
View File
@@ -1778,9 +1778,10 @@ class assign {
* Update a grade in the grade table for the assignment and in the gradebook.
*
* @param stdClass $grade a grade record keyed on id
* @param bool $reopenattempt If the attempt reopen method is manual, allow another attempt at this assignment.
* @return bool true for success
*/
public function update_grade($grade) {
public function update_grade($grade, $reopenattempt = false) {
global $DB;
$grade->timemodified = time();
@@ -1825,9 +1826,11 @@ class assign {
} else {
$submission = $this->get_user_submission($grade->userid, false);
}
$this->reopen_submission_if_required($grade->userid,
$submission,
false);
if ($submission && $submission->attemptnumber == $grade->attemptnumber) {
$this->reopen_submission_if_required($grade->userid,
$submission,
$reopenattempt);
}
// Only push to gradebook if the update is for the latest attempt.
// Not the latest attempt.
@@ -6303,7 +6306,7 @@ class assign {
}
}
}
$this->update_grade($grade);
$this->update_grade($grade, !empty($formdata->addattempt));
// Note the default if not provided for this option is true (e.g. webservices).
// This is for backwards compatibility.
if (!isset($formdata->sendstudentnotifications) || $formdata->sendstudentnotifications) {