]> git.mjollnir.org Git - moodle.git/commitdiff
Assignment module can now maintain its own events in the calendar. :-)
authormoodler <moodler>
Thu, 1 Apr 2004 15:40:39 +0000 (15:40 +0000)
committermoodler <moodler>
Thu, 1 Apr 2004 15:40:39 +0000 (15:40 +0000)
mod/assignment/db/mysql.php
mod/assignment/lib.php
mod/assignment/version.php

index f05f00edf5cad8c5920a69e69b53287cf4de348f..6546f0fca2248c70cecd63868b8e5f55e4bf0f5a 100644 (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;
 }
index e742b407ac6b8ba99aceac45500b4261a00e6ba4..a59aadc04b0bda6a66ad9c533551ea1c22393bee 100644 (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)) {
         
index 366ca5c2da106020297728ce9145fb072dac170f..4941aa98b52456e63d8c6aace19f3f52de963324 100644 (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;