MDL-12912 module idnumber course unique only; merged from MOODLE_19_STABLE

This commit is contained in:
skodak 2008-01-14 22:46:03 +00:00
parent 039afd9b87
commit 204175c5ce
5 changed files with 12 additions and 7 deletions

View File

@ -111,7 +111,7 @@ class moodleform_mod extends moodleform {
if ($mform->elementExists('cmidnumber')) {
// verify the idnumber
if (!grade_verify_idnumber($data['cmidnumber'], $grade_item, $cm)) {
if (!grade_verify_idnumber($data['cmidnumber'], $COURSE->id, $grade_item, $cm)) {
$errors['cmidnumber'] = get_string('idnumbertaken');
}
}

View File

@ -84,7 +84,7 @@ if ($data = $mform->get_data(false)) {
$cm = null;
}
if (!grade_verify_idnumber($value, $gi, $cm)) {
if (!grade_verify_idnumber($value, $COURSE->id, $gi, $cm)) {
$errors[$giid] = get_string('idnumbertaken');
continue;
}

View File

@ -319,6 +319,8 @@ class edit_item_form extends moodleform {
/// perform extra validation before submission
function validation($data, $files) {
global $COURSE;
$errors = parent::validation($data, $files);
if (array_key_exists('idnumber', $data)) {
@ -333,7 +335,7 @@ class edit_item_form extends moodleform {
$grade_item = null;
$cm = null;
}
if (!grade_verify_idnumber($data['idnumber'], $grade_item, $cm)) {
if (!grade_verify_idnumber($data['idnumber'], $COURSE->id, $grade_item, $cm)) {
$errors['idnumber'] = get_string('idnumbertaken');
}
}

View File

@ -217,6 +217,8 @@ class edit_outcomeitem_form extends moodleform {
/// perform extra validation before submission
function validation($data, $files) {
global $COURSE;
$errors = parent::validation($data, $files);
if (array_key_exists('idnumber', $data)) {
@ -225,7 +227,7 @@ class edit_outcomeitem_form extends moodleform {
} else {
$grade_item = null;
}
if (!grade_verify_idnumber($data['idnumber'], $grade_item, null)) {
if (!grade_verify_idnumber($data['idnumber'], $COURSE->id, $grade_item, null)) {
$errors['idnumber'] = get_string('idnumbertaken');
}
}

View File

@ -657,11 +657,12 @@ function grade_get_letters($context=null) {
/**
* Verify new value of idnumber - checks for uniqueness of new idnumbers, old are kept intact
* @param string idnumber string (with magic quotes)
* @param int $courseid - id numbers are course unique only
* @param object $cm used for course module idnumbers and items attached to modules
* @param object $gradeitem is item idnumber
* @return boolean true means idnumber ok
*/
function grade_verify_idnumber($idnumber, $grade_item=null, $cm=null) {
function grade_verify_idnumber($idnumber, $courseid, $grade_item=null, $cm=null) {
if ($idnumber == '') {
//we allow empty idnumbers
return true;
@ -674,11 +675,11 @@ function grade_verify_idnumber($idnumber, $grade_item=null, $cm=null) {
return true;
}
if (get_records('course_modules', 'idnumber', $idnumber)) {
if (get_records_select('course_modules', "course = $courseid AND idnumber='$idnumber'")) {
return false;
}
if (get_records('grade_items', 'idnumber', $idnumber)) {
if (get_records_select('grade_items', "courseid = $courseid AND idnumber='$idnumber'")) {
return false;
}