]> git.mjollnir.org Git - moodle.git/commitdiff
Stop the 'remove rqp' environment message from appearing after the question type...
authortjhunt <tjhunt>
Mon, 16 Jul 2007 13:23:13 +0000 (13:23 +0000)
committertjhunt <tjhunt>
Mon, 16 Jul 2007 13:23:13 +0000 (13:23 +0000)
lib/db/upgrade.php
question/upgrade.php
version.php

index e7898488e70d553f4e96caedb65ea31b8042e55a..18bd856a2cb133bdb409cd6d2c71ff237635d564 100644 (file)
@@ -1487,6 +1487,11 @@ function xmldb_main_upgrade($oldversion=0) {
         $result = $result && create_table($table);
     }
 
+    if ($result && $oldversion < 2007071607) {
+        require_once($CFG->dirroot . '/question/upgrade.php');
+        $result = $result && question_remove_rqp_qtype_config_string();
+    }
+
     return $result;
 }
 ?>
index 12701a02e8cf853b6812664dd69ca148316412e7..e9d1cd2b2869077d3aa96f731ba88a1f23c50908 100644 (file)
@@ -34,19 +34,39 @@ function question_check_no_rqp_questions($result) {
 }
 
 function question_remove_rqp_qtype() {
+    global $CFG;
+
     $result = true;
     
-    $table = new XMLDBTable('question_rqp_states');
-    $result = $result && drop_table($table);
-    
-    $table = new XMLDBTable('question_rqp');
-    $result = $result && drop_table($table);
-    
-    $table = new XMLDBTable('question_rqp_types');
-    $result = $result && drop_table($table);
-    
-    $table = new XMLDBTable('question_rqp_servers');
-    $result = $result && drop_table($table);
+    // Only remove the question type if the code is gone.
+    if (!is_dir($CFG->dirroot . '/question/type/rqp')) {
+        $table = new XMLDBTable('question_rqp_states');
+        $result = $result && drop_table($table);
+        
+        $table = new XMLDBTable('question_rqp');
+        $result = $result && drop_table($table);
+        
+        $table = new XMLDBTable('question_rqp_types');
+        $result = $result && drop_table($table);
+        
+        $table = new XMLDBTable('question_rqp_servers');
+        $result = $result && drop_table($table);
+        
+        $result = $result && unset_config('qtype_rqp_version');
+    }
+        
+    return $result;
+}
+
+function question_remove_rqp_qtype_config_string() {
+    global $CFG;
+
+    $result = true;
+
+    // An earlier, buggy version of the previous function missed out the unset_config call.
+    if (!empty($CFG->qtype_rqp_version) && !is_dir($CFG->dirroot . '/question/type/rqp')) {
+        $result = $result && unset_config('qtype_rqp_version');
+    }
     
     return $result;
 }
index e6ae71c3d7c97a1a09040ee1c0151c69b25e1783..2433ca533edebf35a638cc90983d1bf1045d6034 100644 (file)
@@ -6,9 +6,9 @@
 // This is compared against the values stored in the database to determine
 // whether upgrades should be performed (see lib/db/*.php)
 
-   $version = 2007071501;  // YYYYMMDD = date
-                           //       XY = increments within a single day
+    $version = 2007071600;  // YYYYMMDD = date
+                            //       XY = increments within a single day
 
-   $release = '1.9 dev';    // Human-friendly version name
+    $release = '1.9 dev';   // Human-friendly version name
 
 ?>