mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +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
@ -1599,17 +1599,17 @@ class assign {
|
||||
|
||||
// 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
|
||||
$sql = "SELECT g.id as gradeid, a.course, a.name, a.blindmarking, a.revealidentities,
|
||||
g.*, g.timemodified as lastmodified, cm.id as cmid
|
||||
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
|
||||
JOIN {course_modules} cm ON cm.course = a.course
|
||||
JOIN {modules} md ON md.id = cm.module
|
||||
JOIN {course_modules} cm ON cm.course = a.course AND cm.instance = a.id
|
||||
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
|
||||
WHERE g.timemodified >= :yesterday 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);
|
||||
$submissions = $DB->get_records_sql($sql, $params);
|
||||
@ -1642,9 +1642,6 @@ class assign {
|
||||
unset($courseidsql);
|
||||
unset($params);
|
||||
|
||||
// Simple array we'll use for caching modules.
|
||||
$modcache = array();
|
||||
|
||||
// Message students about new feedback.
|
||||
foreach ($submissions as $submission) {
|
||||
|
||||
@ -1686,22 +1683,10 @@ class assign {
|
||||
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);
|
||||
$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) {
|
||||
// Hold mail notification for assignments the user cannot access until later.
|
||||
@ -1724,7 +1709,7 @@ class assign {
|
||||
$messagetype,
|
||||
$eventtype,
|
||||
$updatetime,
|
||||
$mod,
|
||||
$cm,
|
||||
$contextmodule,
|
||||
$course,
|
||||
$modulename,
|
||||
@ -1752,7 +1737,6 @@ class assign {
|
||||
|
||||
// Free up memory just to be sure.
|
||||
unset($courses);
|
||||
unset($modcache);
|
||||
}
|
||||
|
||||
// Update calendar events to provide a description.
|
||||
|
Loading…
x
Reference in New Issue
Block a user