]> git.mjollnir.org Git - moodle.git/commitdiff
Simpler way to update events for a quiz
authormoodler <moodler>
Sun, 23 May 2004 10:25:46 +0000 (10:25 +0000)
committermoodler <moodler>
Sun, 23 May 2004 10:25:46 +0000 (10:25 +0000)
mod/quiz/lib.php

index cdc1a09ce7cd27abae675ccc77178b88522e85a1..c35c7816cd27be8f0d0ed86ee591b06c3bf600e7 100644 (file)
@@ -80,6 +80,8 @@ function quiz_add_instance($quiz) {
         }
     }
 
+    delete_records('event', 'modulename', 'quiz', 'instance', $quiz->id);  // Just in case
+
     $event = NULL;
     $event->name        = $quiz->name;
     $event->description = $quiz->intro;
@@ -90,6 +92,7 @@ function quiz_add_instance($quiz) {
     $event->instance    = $quiz->id;
     $event->eventtype   = 'open';
     $event->timestart   = $quiz->timeopen;
+    $event->visible     = instance_is_visible('quiz', $quiz->id);
     $event->timeduration = ($quiz->timeclose - $quiz->timeopen);
 
     if ($event->timeduration > QUIZ_MAX_EVENT_LENGTH) {  /// Long durations create two events
@@ -161,58 +164,37 @@ function quiz_update_instance($quiz) {
         }
     }
 
-    if ($events = get_records_select('event', "modulename = 'quiz' AND instance = '$quiz->id' ORDER BY timestart")) {
-
-        $event = array_shift($events);
-        if (!empty($events)) {
-            $event2old = array_shift($events);
-            if (!empty($events)) {
-                foreach ($events as $badevent) {
-                    delete_records('event', 'id', $badevent->id);
-                }
-            }
-        } else {
-            $event2old = NULL;
-        }
-
-        $event->name        = $quiz->name;
-        $event->description = $quiz->intro;
-        $event->courseid    = $quiz->course;
-        $event->groupid     = 0;
-        $event->userid      = 0;
-        $event->modulename  = 'quiz';
-        $event->instance    = $quiz->id;
-        $event->visible     = instance_is_visible('quiz', $quiz->id);
-        $event->timestart   = $quiz->timeopen;
-        $event->eventtype   = 'open';
-        $event->timeduration = ($quiz->timeclose - $quiz->timeopen);
-
-        if ($event->timeduration > QUIZ_MAX_EVENT_LENGTH) {  /// Set up two events
+    delete_records('event', 'modulename', 'quiz', 'instance', $quiz->id);  // Delete old and add new
 
-            $event2 = $event;
+    $event = NULL;
+    $event->name        = $quiz->name;
+    $event->description = $quiz->intro;
+    $event->courseid    = $quiz->course;
+    $event->groupid     = 0;
+    $event->userid      = 0;
+    $event->modulename  = 'quiz';
+    $event->instance    = $quiz->id;
+    $event->eventtype   = 'open';
+    $event->timestart   = $quiz->timeopen;
+    $event->visible     = instance_is_visible('quiz', $quiz->id);
+    $event->timeduration = ($quiz->timeclose - $quiz->timeopen);
 
-            $event->name         = $quiz->name.' ('.get_string('quizopens', 'quiz').')';
-            $event->timeduration = 0;
+    if ($event->timeduration > QUIZ_MAX_EVENT_LENGTH) {  /// Long durations create two events
+        $event2 = $event;
 
-            $event2->name        = $quiz->name.' ('.get_string('quizcloses', 'quiz').')';
-            $event2->timestart   = $quiz->timeclose;
-            $event2->eventtype   = 'close';
-            $event2->timeduration = 0;
+        $event->name         .= ' ('.get_string('quizopens', 'quiz').')';
+        $event->timeduration  = 0;
 
-            if (empty($event2old->id)) {
-                unset($event2->id);
-                add_event($event2);
-            } else {
-                $event2->id = $event2old->id;
-                update_event($event2);
-            }
-        } else if (!empty($event2->id)) {
-            delete_event($event2->id);
-        }
+        $event2->timestart    = $quiz->timeclose;
+        $event2->eventtype    = 'close';
+        $event2->timeduration = 0;
+        $event2->name        .= ' ('.get_string('quizcloses', 'quiz').')';
 
-        update_event($event);
+        add_event($event2);
     }
 
+    add_event($event);
+
     return true;
 }