Assignment module can now maintain its own events in the calendar. :-)
This commit is contained in:
@@ -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
@@ -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)) {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user