diff --git a/mod/assignment/db/install.xml b/mod/assignment/db/install.xml
index 26bf60c..5841e97 100644
--- a/mod/assignment/db/install.xml
+++ b/mod/assignment/db/install.xml
@@ -21,7 +21,8 @@
-
+
+
diff --git a/mod/assignment/db/upgrade.php b/mod/assignment/db/upgrade.php
index 2841111..ea51137 100644
--- a/mod/assignment/db/upgrade.php
+++ b/mod/assignment/db/upgrade.php
@@ -153,7 +153,19 @@ function xmldb_assignment_upgrade($oldversion) {
/// assignment savepoint reached
upgrade_mod_savepoint(true, 2009042001, 'assignment');
}
-
+
+ if($oldversion < 2011082200){
+
+ $table = new xmldb_table('assignment');
+ $field = new xmldb_field('duecheck');
+
+ if (!$dbman->field_exists($table, $field)) {
+ $field->set_attributes(XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, XMLDB_NOTNULL, null, 0, 'timedue');
+ $dbman->add_field($table, $field);
+ }
+ upgrade_mod_savepoint(true, 2011082200, 'assignment');
+ }
+
return true;
}
diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php
index 69cc6a9..3a36f8f 100644
--- a/mod/assignment/lib.php
+++ b/mod/assignment/lib.php
@@ -2473,6 +2473,11 @@ function assignment_update_instance($assignment){
require_once("$CFG->dirroot/mod/assignment/type/$assignment->assignmenttype/assignment.class.php");
$assignmentclass = "assignment_$assignment->assignmenttype";
$ass = new $assignmentclass();
+ //resetting duecheck if there is new due date in the future
+ if(isset($assignment->timedue) && $assignment->timedue > time())
+ {
+ $assignment->duecheck = 0;
+ }
return $ass->update_instance($assignment);
}
@@ -2552,6 +2557,26 @@ function assignment_cron () {
$ass->cron();
}
}
+ //loop all assigments where duecheck 0
+ if($assigments = $DB->get_records('assignment',array('duecheck'=>0)))
+ {
+ foreach($assigments as $assignment)
+ {
+ if($assignment->timedue < time() && $assignment->timedue > 0)
+ {
+ $cm = get_coursemodule_from_instance("assignment", $assignment->id);
+ $eventdata = new stdClass();
+ $eventdata->modulename = "assignment";
+ $eventdata->name = $assignment->name;
+ $eventdata->cmid = $cm->id;
+ $eventdata->courseid = $assignment->course;
+
+ events_trigger("mod_duecheck",$assignment);
+ $DB->set_field("assignment","duecheck","1",array("id"=>$assignment->id));
+ }
+ }
+ }
/// 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
diff --git a/mod/assignment/version.php b/mod/assignment/version.php
index 8bcda08..0bf7711 100644
--- a/mod/assignment/version.php
+++ b/mod/assignment/version.php
@@ -5,7 +5,7 @@
// This fragment is called by /admin/index.php
////////////////////////////////////////////////////////////////////////////////
-$module->version = 2010102600;
+$module->version = 2011082200;
$module->requires = 2010102600; // Requires this Moodle version
$module->cron = 60;