Permalink
Browse files

Don't post out assignment notifications older than a day

  • Loading branch information...
1 parent cc67fc0 commit 742960a9c2d6de9d4a4b9fc29e72d45522d51aa0 moodler committed Nov 7, 2004
Showing with 11 additions and 5 deletions.
  1. +11 −5 mod/assignment/lib.php
View
@@ -198,9 +198,15 @@ function assignment_cron () {
global $CFG, $USER;
- $cutofftime = time() - $CFG->maxeditingtime;
+ /// Notices older than 1 day will not be mailed. This is to avoid the problem where
+ /// cron has not been running for a long time, and then suddenly people are flooded
+ /// with mail from the past few weeks or months
- if ($submissions = assignment_get_unmailed_submissions($cutofftime)) {
+ $timenow = time();
+ $endtime = $timenow - $CFG->maxeditingtime;
+ $starttime = $endtime - 24 * 3600; /// One day earlier
+
+ if ($submissions = assignment_get_unmailed_submissions($starttime, $endtime)) {
foreach ($submissions as $key => $submission) {
if (! set_field("assignment_submissions", "mailed", "1", "id", "$submission->id")) {
@@ -484,16 +490,16 @@ function assignment_get_users_done($assignment) {
ORDER BY a.timemodified DESC");
}
-function assignment_get_unmailed_submissions($cutofftime) {
+function assignment_get_unmailed_submissions($starttime, $endtime) {
/// Return list of marked submissions that have not been mailed out for currently enrolled students
global $CFG;
return get_records_sql("SELECT s.*, a.course, a.name
FROM {$CFG->prefix}assignment_submissions s,
{$CFG->prefix}assignment a,
{$CFG->prefix}user_students us
WHERE s.mailed = 0
- AND s.timemarked < $cutofftime
- AND s.timemarked > 0
+ AND s.timemarked <= $endtime
+ AND s.timemarked >= $starttime
AND s.assignment = a.id
AND s.userid = us.userid
AND a.course = us.course");

0 comments on commit 742960a

Please sign in to comment.