diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 1db283bbb82..5f340477f0a 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -1516,14 +1516,18 @@ class assign { $timenow = time(); // Collect all submissions from the past 24 hours that require mailing. + // Submissions are excluded if the assignment is hidden in the gradebook. $sql = 'SELECT g.id as gradeid, a.course, a.name, a.blindmarking, a.revealidentities, g.*, g.timemodified as lastmodified FROM {assign} a JOIN {assign_grades} g ON g.assignment = a.id - LEFT JOIN {assign_user_flags} uf ON uf.assignment = a.id AND uf.userid = g.userid - WHERE g.timemodified >= :yesterday AND - g.timemodified <= :today AND - uf.mailed = 0'; + LEFT JOIN {assign_user_flags} uf ON uf.assignment = a.id AND uf.userid = g.userid + JOIN {course_modules} cm ON cm.course = a.course + JOIN {modules} md ON md.id = cm.module + JOIN {grade_items} gri ON gri.iteminstance = a.id AND gri.courseid = a.course AND gri.itemmodule = md.name + WHERE g.timemodified >= :yesterday AND + g.timemodified <= :today AND + uf.mailed = 0 AND gri.hidden = 0'; $params = array('yesterday' => $yesterday, 'today' => $timenow); $submissions = $DB->get_records_sql($sql, $params);