Assignment module can now maintain its own events in the calendar. :-)

This commit is contained in:
moodler
2004-04-01 15:40:39 +00:00
parent 2b10fcf5a8
commit e6a4906bee
3 changed files with 72 additions and 3 deletions
+4
View File
@@ -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;
}
+67 -2
View File
@@ -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)) {
+1 -1
View File
@@ -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;