From: moodler Date: Thu, 1 Apr 2004 15:40:39 +0000 (+0000) Subject: Assignment module can now maintain its own events in the calendar. :-) X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=e6a4906beea00238cf15a277119efe8bb5e603bd;p=moodle.git Assignment module can now maintain its own events in the calendar. :-) --- diff --git a/mod/assignment/db/mysql.php b/mod/assignment/db/mysql.php index f05f00edf5..6546f0fca2 100644 --- a/mod/assignment/db/mysql.php +++ b/mod/assignment/db/mysql.php @@ -94,6 +94,10 @@ function assignment_upgrade($oldversion) { if ($oldversion < 2004021700) { set_field("log_display", "action", "view submission", "module", "assignment", "action", "view submissions"); } + if ($oldversion < 2004040100) { + include_once("$CFG->dirroot/mod/assignment/lib.php"); + assignment_refresh_events(); + } return true; } diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index e742b407ac..a59aadc04b 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -24,7 +24,24 @@ function assignment_add_instance($assignment) { $assignment->timedue = make_timestamp($assignment->dueyear, $assignment->duemonth, $assignment->dueday, $assignment->duehour, $assignment->dueminute); - 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; } @@ -38,7 +55,22 @@ function assignment_update_instance($assignment) { $assignment->duehour, $assignment->dueminute); $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; } @@ -64,6 +96,39 @@ function assignment_delete_instance($id) { return $result; } +function assignment_refresh_events() { +// This standard function will check all instances of this module +// and make sure there are up-to-date events created for each of them. + + if (! $assignments = get_records("assignment")) { + return true; + } + + foreach ($assignments as $assignment) { + $event = NULL; + $event->name = $assignment->name; + $event->description = $assignment->description; + $event->timestart = $assignment->timedue; + + if ($event->id = get_field('event', 'id', 'modulename', 'assignment', 'instance', $assignment->id)) { + update_event($event); + + } else { + $event->courseid = $assignment->course; + $event->groupid = 0; + $event->userid = 0; + $event->modulename = 'assignment'; + $event->instance = $assignment->id; + $event->eventtype = 'due'; + $event->timeduration = 0; + + add_event($event); + } + } + return true; +} + + function assignment_user_outline($course, $user, $mod, $assignment) { if ($submission = assignment_get_submission($assignment, $user)) { diff --git a/mod/assignment/version.php b/mod/assignment/version.php index 366ca5c2da..4941aa98b5 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 = 2004021700; +$module->version = 2004040100; $module->requires = 2004013101; // Requires this Moodle version $module->cron = 60;