From 0da010f792569832775bbc786cefb9dec122dc23 Mon Sep 17 00:00:00 2001 From: toyomoyo Date: Mon, 13 Aug 2007 09:29:12 +0000 Subject: [PATCH] grade items in xml export should not be checkable if they have no idnumbers --- grade/export/grade_export_form.php | 23 +++++++++++++++++++---- grade/export/lib.php | 4 ++-- grade/export/xml/index.php | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/grade/export/grade_export_form.php b/grade/export/grade_export_form.php index 657fbe279e8..658a481a5eb 100755 --- a/grade/export/grade_export_form.php +++ b/grade/export/grade_export_form.php @@ -5,9 +5,12 @@ class grade_export_form extends moodleform { function definition (){ global $CFG; include_once($CFG->libdir.'/pear/HTML/QuickForm/advcheckbox.php'); - $mform =& $this->_form; - + if (isset($this->_customdata['plugin'])) { + $plugin = $this->_customdata['plugin']; + } else { + $plugin = 'unknown'; + } $mform->addElement('advcheckbox', 'export_letters', get_string('exportletters', 'grades')); $mform->setDefault('export_letters', 0); $mform->setHelpButton('export_letters', array(false, get_string('exportletters', 'grades'), @@ -18,13 +21,25 @@ class grade_export_form extends moodleform { $id = $this->_customdata['id']; // course id $mform->addElement('hidden', 'id', $id); if ($grade_items = grade_item::fetch_all(array('courseid'=>$id))) { + $noidnumber = false; foreach ($grade_items as $grade_item) { - $element = new HTML_QuickForm_advcheckbox('itemids[]', null, $grade_item->get_name(), array('selected'=>'selected'), array(0, $grade_item->id)); - $element->setChecked(1); + + if ($plugin != 'xmlexport' || $grade_item->idnumber) { + $element = new HTML_QuickForm_advcheckbox('itemids[]', null, $grade_item->get_name(), array('selected'=>'selected'), array(0, $grade_item->id)); + $element->setChecked(1); + } else { + $noidnumber = true; + $element = new HTML_QuickForm_advcheckbox('itemids[]', null, $grade_item->get_name(), array('disabled'=>'disabled'), array(0, $grade_item->id)); + } + $mform->addElement($element); } } + if ($noidnumber) { + $mform->addElement('static', 'noidnumber', '', get_string('noidnumber')); + } + $options = array('10'=>10, '20'=>20, '100'=>100, '1000'=>1000, '100000'=>100000); $mform->addElement('select', 'previewrows', 'Preview rows', $options); // TODO: localize $mform->setType('previewrows', PARAM_INT); diff --git a/grade/export/lib.php b/grade/export/lib.php index 4dc81538f29..211ef42954b 100755 --- a/grade/export/lib.php +++ b/grade/export/lib.php @@ -30,12 +30,12 @@ require_once($CFG->dirroot.'/grade/lib.php'); * Prints all grade items for selection * @input int id - course id */ -function print_gradeitem_selections($id, $params = NULL) { +function print_gradeitem_selections($id, $params = array()) { global $CFG; // print all items for selections // make this a standard function in lib maybe include_once('grade_export_form.php'); - $mform = new grade_export_form(qualified_me(), array('id'=>$id)); + $mform = new grade_export_form(qualified_me(), array('id'=>$id)+$params); $mform->display(); } diff --git a/grade/export/xml/index.php b/grade/export/xml/index.php index c07b231f8f7..98b7183c2a6 100755 --- a/grade/export/xml/index.php +++ b/grade/export/xml/index.php @@ -66,6 +66,6 @@ if (($data = data_submitted()) && confirm_sesskey()) { exit; } -print_gradeitem_selections($id); +print_gradeitem_selections($id, array('plugin'=>'xmlexport')); print_footer(); ?>