From 204175c5ce5b280a328e2744af0490719edfeaeb Mon Sep 17 00:00:00 2001 From: skodak Date: Mon, 14 Jan 2008 22:46:03 +0000 Subject: [PATCH] MDL-12912 module idnumber course unique only; merged from MOODLE_19_STABLE --- course/moodleform_mod.php | 2 +- grade/edit/tree/calculation.php | 2 +- grade/edit/tree/item_form.php | 4 +++- grade/edit/tree/outcomeitem_form.php | 4 +++- lib/gradelib.php | 7 ++++--- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/course/moodleform_mod.php b/course/moodleform_mod.php index e2739c6b88..9f5b2f34e8 100644 --- a/course/moodleform_mod.php +++ b/course/moodleform_mod.php @@ -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'); } } diff --git a/grade/edit/tree/calculation.php b/grade/edit/tree/calculation.php index 8441c978c1..7d1e1fc11d 100644 --- a/grade/edit/tree/calculation.php +++ b/grade/edit/tree/calculation.php @@ -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; } diff --git a/grade/edit/tree/item_form.php b/grade/edit/tree/item_form.php index e6a2b01044..cdf70f331a 100644 --- a/grade/edit/tree/item_form.php +++ b/grade/edit/tree/item_form.php @@ -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'); } } diff --git a/grade/edit/tree/outcomeitem_form.php b/grade/edit/tree/outcomeitem_form.php index 8104e0b848..25d4b7f9cb 100644 --- a/grade/edit/tree/outcomeitem_form.php +++ b/grade/edit/tree/outcomeitem_form.php @@ -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'); } } diff --git a/lib/gradelib.php b/lib/gradelib.php index d6b550f62f..fff2a2d6cc 100644 --- a/lib/gradelib.php +++ b/lib/gradelib.php @@ -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; } -- 2.39.5