Skip to content

Commit

Permalink
MDL-48861 assign: Fix the "needs grading" filter
Browse files Browse the repository at this point in the history
When auto-creating a new grade record - do not set the timemodified > than the submission timemodified
  • Loading branch information
Damyon Wiese authored and danpoltawski committed Oct 12, 2015
1 parent 259db67 commit 7821a81
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions mod/assign/locallib.php
Expand Up @@ -1518,7 +1518,7 @@ public function count_submissions_need_grading() {
s.assignment = :assignid AND
s.timemodified IS NOT NULL AND
s.status = :submitted AND
(s.timemodified > g.timemodified OR g.timemodified IS NULL OR g.grade IS NULL)';
(s.timemodified > g.timemodified OR g.timemodified IS NULL)';

return $DB->count_records_sql($sql, $params);
}
Expand Down Expand Up @@ -2890,9 +2890,10 @@ public function get_user_grade($userid, $create, $attemptnumber=-1) {
if (!$userid) {
$userid = $USER->id;
}
$submission = null;

$params = array('assignment'=>$this->get_instance()->id, 'userid'=>$userid);
if ($attemptnumber < 0) {
if ($attemptnumber < 0 || $create) {
// Make sure this grade matches the latest submission attempt.
if ($this->get_instance()->teamsubmission) {
$submission = $this->get_group_submission($userid, 0, true);
Expand All @@ -2918,7 +2919,14 @@ public function get_user_grade($userid, $create, $attemptnumber=-1) {
$grade->assignment = $this->get_instance()->id;
$grade->userid = $userid;
$grade->timecreated = time();
$grade->timemodified = $grade->timecreated;
// If we are "auto-creating" a grade - and there is a submission
// the new grade should not have a more recent timemodified value
// than the submission.
if ($submission) {
$grade->timemodified = $submission->timemodified;
} else {
$grade->timemodified = $grade->timecreated;
}
$grade->grade = -1;
$grade->grader = $USER->id;
if ($attemptnumber >= 0) {
Expand Down

0 comments on commit 7821a81

Please sign in to comment.