]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-20665 fixed error from postgres on validating duplicate category name when enteri...
authorJenny Gray <j.m.gray@open.ac.uk>
Wed, 4 Nov 2009 12:16:19 +0000 (12:16 +0000)
committerJenny Gray <j.m.gray@open.ac.uk>
Wed, 4 Nov 2009 12:16:19 +0000 (12:16 +0000)
user/profile/index_category_form.php

index 2952ab1bea8ec6a1e58b9248e782df43d03bf032..0d99ac301f69193de5afd719d594a28fd0ad2bdd 100644 (file)
@@ -33,10 +33,19 @@ class category_form extends moodleform {
 
         $data  = (object)$data;
 
-        $category = $DB->get_record('user_info_category', array('id'=>$data->id));
+        $duplicate = $DB->record_exists('user_info_category', array('name'=>$data->name));
 
         /// Check the name is unique
-        if ($category and ($category->name !== $data->name) and ($DB->record_exists('user_info_category', array('name'=>$data->name)))) {
+        if (!empty($data->id)) { // we are editing an existing record
+            $olddata = get_record('user_info_category', 'id', $data->id);
+            // name has changed, new name in use, new name in use by another record
+            $dupfound = (($olddata->name !== $data->name) && $duplicate && ($data->id != $duplicate->id));
+        }
+        else { // new profile category
+            $dupfound = $duplicate;
+        }
+        
+        if ($dupfound ) {
             $errors['name'] = get_string('profilecategorynamenotunique', 'admin');
         }