mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 17:36:38 +02:00
MDL-43908 mod_assign: Remove redundant code and improve SQL query
Signed-off-by: Tony Butler <tonyjbutler@gmail.com>
This commit is contained in:
parent
c681f7a083
commit
86dced433e
1 changed files with 9 additions and 25 deletions
|
@ -1599,17 +1599,17 @@ class assign {
|
||||||
|
|
||||||
// Collect all submissions from the past 24 hours that require mailing.
|
// Collect all submissions from the past 24 hours that require mailing.
|
||||||
// Submissions are excluded if the assignment is hidden in the gradebook.
|
// 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,
|
$sql = "SELECT g.id as gradeid, a.course, a.name, a.blindmarking, a.revealidentities,
|
||||||
g.*, g.timemodified as lastmodified
|
g.*, g.timemodified as lastmodified, cm.id as cmid
|
||||||
FROM {assign} a
|
FROM {assign} a
|
||||||
JOIN {assign_grades} g ON g.assignment = a.id
|
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
|
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 {course_modules} cm ON cm.course = a.course AND cm.instance = a.id
|
||||||
JOIN {modules} md ON md.id = cm.module
|
JOIN {modules} md ON md.id = cm.module AND md.name = 'assign'
|
||||||
JOIN {grade_items} gri ON gri.iteminstance = a.id AND gri.courseid = a.course AND gri.itemmodule = md.name
|
JOIN {grade_items} gri ON gri.iteminstance = a.id AND gri.courseid = a.course AND gri.itemmodule = md.name
|
||||||
WHERE g.timemodified >= :yesterday AND
|
WHERE g.timemodified >= :yesterday AND
|
||||||
g.timemodified <= :today AND
|
g.timemodified <= :today AND
|
||||||
uf.mailed = 0 AND gri.hidden = 0';
|
uf.mailed = 0 AND gri.hidden = 0";
|
||||||
|
|
||||||
$params = array('yesterday' => $yesterday, 'today' => $timenow);
|
$params = array('yesterday' => $yesterday, 'today' => $timenow);
|
||||||
$submissions = $DB->get_records_sql($sql, $params);
|
$submissions = $DB->get_records_sql($sql, $params);
|
||||||
|
@ -1642,9 +1642,6 @@ class assign {
|
||||||
unset($courseidsql);
|
unset($courseidsql);
|
||||||
unset($params);
|
unset($params);
|
||||||
|
|
||||||
// Simple array we'll use for caching modules.
|
|
||||||
$modcache = array();
|
|
||||||
|
|
||||||
// Message students about new feedback.
|
// Message students about new feedback.
|
||||||
foreach ($submissions as $submission) {
|
foreach ($submissions as $submission) {
|
||||||
|
|
||||||
|
@ -1686,22 +1683,10 @@ class assign {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!array_key_exists($submission->assignment, $modcache)) {
|
|
||||||
$mod = get_coursemodule_from_instance('assign', $submission->assignment, $course->id);
|
|
||||||
if (empty($mod)) {
|
|
||||||
mtrace('Could not find course module for assignment id ' . $submission->assignment);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$modcache[$submission->assignment] = $mod;
|
|
||||||
} else {
|
|
||||||
$mod = $modcache[$submission->assignment];
|
|
||||||
}
|
|
||||||
// Context lookups are already cached.
|
|
||||||
$contextmodule = context_module::instance($mod->id);
|
|
||||||
|
|
||||||
// Get assignment visibility information for user.
|
|
||||||
$modinfo = get_fast_modinfo($course, $user->id);
|
$modinfo = get_fast_modinfo($course, $user->id);
|
||||||
$cm = $modinfo->get_cm($mod->id);
|
$cm = $modinfo->get_cm($submission->cmid);
|
||||||
|
// Context lookups are already cached.
|
||||||
|
$contextmodule = context_module::instance($cm->id);
|
||||||
|
|
||||||
if (!$cm->uservisible) {
|
if (!$cm->uservisible) {
|
||||||
// Hold mail notification for assignments the user cannot access until later.
|
// Hold mail notification for assignments the user cannot access until later.
|
||||||
|
@ -1724,7 +1709,7 @@ class assign {
|
||||||
$messagetype,
|
$messagetype,
|
||||||
$eventtype,
|
$eventtype,
|
||||||
$updatetime,
|
$updatetime,
|
||||||
$mod,
|
$cm,
|
||||||
$contextmodule,
|
$contextmodule,
|
||||||
$course,
|
$course,
|
||||||
$modulename,
|
$modulename,
|
||||||
|
@ -1752,7 +1737,6 @@ class assign {
|
||||||
|
|
||||||
// Free up memory just to be sure.
|
// Free up memory just to be sure.
|
||||||
unset($courses);
|
unset($courses);
|
||||||
unset($modcache);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update calendar events to provide a description.
|
// Update calendar events to provide a description.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue