]> git.mjollnir.org Git - moodle.git/commitdiff
When restoring numerical questions, don't create duplicate unit definitions. Merged...
authortjhunt <tjhunt>
Wed, 28 Feb 2007 17:18:28 +0000 (17:18 +0000)
committertjhunt <tjhunt>
Wed, 28 Feb 2007 17:18:28 +0000 (17:18 +0000)
question/restorelib.php

index e4ca6f7d7025ffc5f82617b6050773bb0c103878..68b723d8cbf8a8dc1c516759d75f3c44382c0be3 100644 (file)
         return $status;
     }
 
-    function question_restore_numerical_units ($old_question_id,$new_question_id,$info,$restore) {
+    function question_restore_numerical_units($old_question_id,$new_question_id,$info,$restore) {
 
         global $CFG;
 
             //print_object ($GLOBALS['traverse_array']);                                                  //Debug
             //$GLOBALS['traverse_array']="";                                                              //Debug
 
-            //Now, build the question_numerical_UNITS record structure
-            $numerical_unit = new stdClass;
-            $numerical_unit->question = $new_question_id;
-            $numerical_unit->multiplier = backup_todb($nu_info['#']['MULTIPLIER']['0']['#']);
-            $numerical_unit->unit = backup_todb($nu_info['#']['UNIT']['0']['#']);
-
-            //The structure is equal to the db, so insert the question_numerical_units
-            $newid = insert_record ("question_numerical_units",$numerical_unit);
-
-            if (!$newid) {
-                $status = false;
+            // Check to see if this until already exists in the database, which it might, for 
+            // Historical reasons.
+            $unit = backup_todb($nu_info['#']['UNIT']['0']['#']);
+            if (!record_exists('question_numerical_units', 'question', $new_question_id, 'unit', $unit)) {
+                
+                //Now, build the question_numerical_UNITS record structure.
+                $numerical_unit = new stdClass;
+                $numerical_unit->question = $new_question_id;
+                $numerical_unit->multiplier = backup_todb($nu_info['#']['MULTIPLIER']['0']['#']);
+                $numerical_unit->unit = $unit;
+    
+                //The structure is equal to the db, so insert the question_numerical_units
+                $newid = insert_record("question_numerical_units", $numerical_unit);
+    
+                if (!$newid) {
+                    $status = false;
+                }
             }
         }