diff --git a/mod/assignment/db/mysql.php b/mod/assignment/db/mysql.php index 005ad8f4a24..c7e2a14a649 100644 --- a/mod/assignment/db/mysql.php +++ b/mod/assignment/db/mysql.php @@ -154,6 +154,11 @@ function assignment_upgrade($oldversion) { table_column('assignment', '', 'preventlate', 'integer', '2', 'unsigned', '0', 'not null', 'resubmit'); } + if ($oldversion < 2005060100) { + include_once("$CFG->dirroot/mod/assignment/lib.php"); + assignment_refresh_events(); + } + /// These lines ALWAYS need to be here at the end of this file. Don't mess with them. :-) include_once("$CFG->dirroot/mod/assignment/lib.php"); diff --git a/mod/assignment/db/postgres7.php b/mod/assignment/db/postgres7.php index 4a288a95013..4380c861b51 100644 --- a/mod/assignment/db/postgres7.php +++ b/mod/assignment/db/postgres7.php @@ -152,6 +152,11 @@ function assignment_upgrade($oldversion) { table_column('assignment', '', 'preventlate', 'integer', '2', 'unsigned', '0', 'not null', 'resubmit'); } + if ($oldversion < 2005060100) { + include_once("$CFG->dirroot/mod/assignment/lib.php"); + assignment_refresh_events(); + } + /// These lines ALWAYS need to be here at the end of this file. Don't mess with them. :-) include_once("$CFG->dirroot/mod/assignment/lib.php"); diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index c3297f8b9e3..764fcc32790 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -342,11 +342,42 @@ class assignment_base { $assignment->availableminute); } - return insert_record('assignment', $assignment); + if ($returnid = insert_record("assignment", $assignment)) { + + $event = NULL; + $event->name = $assignment->name; + $event->description = $assignment->description; + $event->courseid = $assignment->course; + $event->groupid = 0; + $event->userid = 0; + $event->modulename = 'assignment'; + $event->instance = $returnid; + $event->eventtype = 'due'; + $event->timestart = $assignment->timedue; + $event->timeduration = 0; + + add_event($event); + } + + return $returnid; } function delete_instance($assignment) { - return delete_records('assignment', 'id', $assignment->id); + $result = true; + + if (! delete_records('assignment_submissions', 'assignment', $assignment->id)) { + $result = false; + } + + if (! delete_records('assignment', 'id', $assignment->id)) { + $result = false; + } + + if (! delete_records('event', 'modulename', 'assignment', 'instance', $assignment->id)) { + $result = false; + } + + return $result; } function update_instance($assignment) { @@ -374,7 +405,22 @@ class assignment_base { } $assignment->id = $assignment->instance; - return update_record('assignment', $assignment); + + if ($returnid = update_record('assignment', $assignment)) { + + $event = NULL; + + if ($event->id = get_field('event', 'id', 'modulename', 'assignment', 'instance', $assignment->id)) { + + $event->name = $assignment->name; + $event->description = $assignment->description; + $event->timestart = $assignment->timedue; + + update_event($event); + } + } + + return $returnid; } diff --git a/mod/assignment/version.php b/mod/assignment/version.php index e8c55a93d60..7ea94f4c790 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 = 2005051706; +$module->version = 2005060100; $module->requires = 2005031000; // Requires this Moodle version $module->cron = 60;