### Eclipse Workspace Patch 1.0 #P moodle20 Index: grade/edit/scale/edit_form.php =================================================================== RCS file: /cvsroot/moodle/moodle/grade/edit/scale/edit_form.php,v retrieving revision 1.22 diff -u -r1.22 edit_form.php --- grade/edit/scale/edit_form.php 15 Oct 2010 02:56:28 -0000 1.22 +++ grade/edit/scale/edit_form.php 22 Nov 2010 04:10:43 -0000 @@ -124,22 +124,29 @@ } if (array_key_exists('scale', $data)) { - $count = $DB->count_records('scale', array('courseid'=>$courseid, 'scale'=>$data['scale'])); + $scalearray = explode(',', $data['scale']); + $scalearray = array_map('trim', $scalearray); + $scaleoptioncount = count($scalearray); - if (empty($old->id) or $old->courseid != $courseid) { - if ($count) { - $errors['scale'] = get_string('duplicatescale', 'grades'); - } - - } else if ($old->scale != $data['scale']) { - if ($count) { - $errors['scale'] = get_string('duplicatescale', 'grades'); - } - } - - $options = explode(',', $data['scale']); - if (count($options) < 2) { + if (count($scalearray) < 2) { $errors['scale'] = get_string('badlyformattedscale', 'grades'); + } else { + $thescale = implode(',',$scalearray); + + $textlib = textlib_get_instance(); + $count = $DB->count_records_select('scale', "courseid=:courseid AND ".$DB->sql_compare_text('scale', $textlib->strlen($thescale)).'=:scale', + array('courseid'=>$courseid, 'scale'=>$thescale)); + + if (empty($old->id) or $old->courseid != $courseid) { + if ($count) { + $errors['scale'] = get_string('duplicatescale', 'grades'); + } + + } else if ($old->scale !== $thescale and $old->scale !== $data['scale']) { + if ($count) { + $errors['scale'] = get_string('duplicatescale', 'grades'); + } + } } }