mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 22:08:20 +01:00
MDL-22574, fixed outcomes import form
This commit is contained in:
parent
15dd3edbcf
commit
c46aeeab9c
@ -15,15 +15,18 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/// THIS SCRIPT IS CALLED WITH "require_once()" FROM index.php
|
||||
if (!defined('MOODLE_INTERNAL')) {
|
||||
die('Direct access to this script is forbidden.');
|
||||
}
|
||||
require_once(dirname(__FILE__).'/../../../config.php');
|
||||
require_once($CFG->dirroot.'/lib/formslib.php');
|
||||
require_once($CFG->dirroot.'/grade/lib.php');
|
||||
require_once($CFG->libdir.'/gradelib.php');
|
||||
require_once('import_outcomes_form.php');
|
||||
|
||||
$courseid = optional_param('id', 0, PARAM_INT);
|
||||
$courseid = optional_param('courseid', 0, PARAM_INT);
|
||||
$action = optional_param('action', '', PARAM_ALPHA);
|
||||
$scope = optional_param('scope', 'global', PARAM_ALPHA);
|
||||
|
||||
$PAGE->set_url('/grade/edit/outcome/import.php', array('courseid' => $courseid));
|
||||
|
||||
/// Make sure they can even access this course
|
||||
if ($courseid) {
|
||||
if (!$course = $DB->get_record('course', array('id' => $courseid))) {
|
||||
@ -46,31 +49,27 @@ require_capability('moodle/grade:manageoutcomes', $context);
|
||||
|
||||
$navigation = grade_build_nav(__FILE__, get_string('outcomes', 'grades'), $courseid);
|
||||
|
||||
if (!confirm_sesskey()) {
|
||||
break;
|
||||
}
|
||||
$upload_form = new import_outcomes_form();
|
||||
|
||||
$systemcontext = get_context_instance(CONTEXT_SYSTEM);
|
||||
$caneditsystemscales = has_capability('moodle/course:managescales', $systemcontext);
|
||||
|
||||
if ($courseid) {
|
||||
// display import form
|
||||
if (!$upload_form->get_data()) {
|
||||
print_grade_page_head($courseid, 'outcome', 'import', get_string('importoutcomes', 'grades'));
|
||||
|
||||
$caneditcoursescales = has_capability('moodle/course:managescales', $context);
|
||||
|
||||
} else {
|
||||
echo $OUTPUT->header();
|
||||
$caneditcoursescales = $caneditsystemscales;
|
||||
$upload_form->display();
|
||||
echo $OUTPUT->footer();
|
||||
die;
|
||||
}
|
||||
print_grade_page_head($courseid, 'outcome', 'import', get_string('importoutcomes', 'grades'));
|
||||
|
||||
$imported_file = $upload_form->_upload_manager->files;
|
||||
$imported_file = $CFG->dataroot . '/temp/outcomeimport/importedfile_'.time().'.csv';
|
||||
make_upload_directory('temp/outcomeimport');
|
||||
|
||||
if ($imported_file['userfile']['size'] == 0) {
|
||||
redirect('index.php'. ($courseid ? "?id=$courseid" : ''), get_string('importfilemissing', 'grades'));
|
||||
// copying imported file
|
||||
if (!$upload_form->save_file('userfile', $imported_file, true)) {
|
||||
redirect('import.php'. ($courseid ? "?courseid=$courseid" : ''), get_string('importfilemissing', 'grades'));
|
||||
}
|
||||
|
||||
/// which scope are we importing the outcomes in?
|
||||
if (isset($courseid) && ($scope == 'local')) {
|
||||
if (isset($courseid) && ($scope == 'custom')) {
|
||||
// custom scale
|
||||
$local_scope = true;
|
||||
} elseif (($scope == 'global') && has_capability('moodle/grade:manage', get_context_instance(CONTEXT_SYSTEM))) {
|
||||
@ -82,7 +81,7 @@ if (isset($courseid) && ($scope == 'local')) {
|
||||
}
|
||||
|
||||
// open the file, start importing data
|
||||
if ($handle = fopen($imported_file['userfile']['tmp_name'], 'r')) {
|
||||
if ($handle = fopen($imported_file, 'r')) {
|
||||
$line = 0; // will keep track of current line, to give better error messages.
|
||||
$file_headers = '';
|
||||
|
||||
@ -119,7 +118,7 @@ if ($handle = fopen($imported_file['userfile']['tmp_name'], 'r')) {
|
||||
if ($error) {
|
||||
echo $OUTPUT->box_start('generalbox importoutcomenofile buttons');
|
||||
echo get_string('importoutcomenofile', 'grades', $line);
|
||||
echo $OUTPUT->single_button(new moodle_url('/grade/edit/outcome/index.php', array('id'=> $courseid)), get_string('back'), 'get');
|
||||
echo $OUTPUT->single_button(new moodle_url('/grade/edit/outcome/import.php', array('courseid'=> $courseid)), get_string('back'), 'get');
|
||||
echo $OUTPUT->box_end();
|
||||
$fatal_error = true;
|
||||
break;
|
||||
@ -138,7 +137,7 @@ if ($handle = fopen($imported_file['userfile']['tmp_name'], 'r')) {
|
||||
if ( count($csv_data) != count($file_headers) ) {
|
||||
echo $OUTPUT->box_start('generalbox importoutcomenofile');
|
||||
echo get_string('importoutcomenofile', 'grades', $line);
|
||||
echo $OUTPUT->single_button(new moodle_url('/grade/edit/outcome/index.php', array('id'=> $courseid)), get_string('back'), 'get');
|
||||
echo $OUTPUT->single_button(new moodle_url('/grade/edit/outcome/import.php', array('courseid'=> $courseid)), get_string('back'), 'get');
|
||||
echo $OUTPUT->box_end();
|
||||
$fatal_error = true;
|
||||
//echo $OUTPUT->box(var_export($csv_data, true) ."<br />". var_export($header, true));
|
||||
@ -150,15 +149,13 @@ if ($handle = fopen($imported_file['userfile']['tmp_name'], 'r')) {
|
||||
if ($csv_data[$imported_headers[$header]] == '') {
|
||||
echo $OUTPUT->box_start('generalbox importoutcomenofile');
|
||||
echo get_string('importoutcomenofile', 'grades', $line);
|
||||
echo $OUTPUT->single_button(new moodle_url('/grade/edit/outcome/index.php', array('id'=> $courseid)), get_string('back'), 'get');
|
||||
echo $OUTPUT->single_button(new moodle_url('/grade/edit/outcome/import.php', array('courseid'=> $courseid)), get_string('back'), 'get');
|
||||
echo $OUTPUT->box_end();
|
||||
$fatal_error = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//var_dump($csv_data);
|
||||
|
||||
// MDL-17273 errors in csv are not preventing import from happening. We break from the while loop here
|
||||
if ($fatal_error) {
|
||||
break;
|
||||
@ -236,5 +233,7 @@ if ($handle = fopen($imported_file['userfile']['tmp_name'], 'r')) {
|
||||
|
||||
// finish
|
||||
fclose($handle);
|
||||
// delete temp file
|
||||
unlink($imported_file);
|
||||
|
||||
echo $OUTPUT->footer();
|
||||
|
@ -24,25 +24,25 @@ require_once($CFG->dirroot.'/lib/formslib.php');
|
||||
class import_outcomes_form extends moodleform {
|
||||
|
||||
public function definition() {
|
||||
global $COURSE, $USER;
|
||||
global $PAGE, $USER;
|
||||
|
||||
$mform =& $this->_form;
|
||||
//$this->set_upload_manager(new upload_manager('importfile', false, false, null, false, 0, true, true, false));
|
||||
|
||||
$mform->addElement('hidden', 'action', 'upload');
|
||||
$mform->setType('action', PARAM_ACTION);
|
||||
$mform->addElement('hidden', 'id', $COURSE->id);
|
||||
$mform->addElement('hidden', 'courseid', $PAGE->course->id);
|
||||
$mform->setType('id', PARAM_INT);
|
||||
|
||||
$scope = array();
|
||||
if (($COURSE->id > 1) && has_capability('moodle/grade:manage', get_context_instance(CONTEXT_SYSTEM))) {
|
||||
if (($PAGE->course->id > 1) && has_capability('moodle/grade:manage', get_context_instance(CONTEXT_SYSTEM))) {
|
||||
$mform->addElement('radio', 'scope', get_string('importcustom', 'grades'), null, 'custom');
|
||||
$mform->addElement('radio', 'scope', get_string('importstandard', 'grades'), null, 'global');
|
||||
$mform->setDefault('scope', 'custom');
|
||||
}
|
||||
|
||||
$mform->addElement('file', 'userfile', get_string('importoutcomes', 'grades'));
|
||||
$mform->addHelpButton('userfile', 'importoutcomes', 'grades');
|
||||
$mform->addElement('filepicker', 'userfile', get_string('importoutcomes', 'grades'));
|
||||
$mform->addRule('userfile', get_string('required'), 'required', null, 'server');
|
||||
$mform->setHelpButton('userfile', array('importoutcomes', get_string('importoutcomes', 'grades'), 'grade'));
|
||||
|
||||
$mform->addElement('submit', 'save', get_string('uploadthisfile'));
|
||||
|
||||
|
@ -24,7 +24,6 @@
|
||||
*/
|
||||
|
||||
require_once(dirname(__FILE__).'/../../../config.php');
|
||||
require_once($CFG->dirroot.'/lib/formslib.php');
|
||||
require_once($CFG->dirroot.'/grade/lib.php');
|
||||
require_once($CFG->libdir.'/gradelib.php');
|
||||
|
||||
@ -57,14 +56,6 @@ if ($courseid) {
|
||||
/// return tracking object
|
||||
$gpr = new grade_plugin_return(array('type'=>'edit', 'plugin'=>'outcome', 'courseid'=>$courseid));
|
||||
|
||||
require_once('import_outcomes_form.php');
|
||||
$upload_form = new import_outcomes_form();
|
||||
|
||||
if ($upload_form_data = $upload_form->get_data()) {
|
||||
require_once('import.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
$strgrades = get_string('grades');
|
||||
$pagename = get_string('outcomes', 'grades');
|
||||
@ -253,8 +244,6 @@ if ( !empty($outcomes_tables) ) {
|
||||
}
|
||||
echo $OUTPUT->container_end();
|
||||
|
||||
$upload_form->display();
|
||||
|
||||
echo $OUTPUT->footer();
|
||||
|
||||
/**
|
||||
@ -270,4 +259,3 @@ function grade_print_scale_link($courseid, $scale, $gpr) {
|
||||
$url = $gpr->add_url_params($url);
|
||||
return html_writer::link($url, $scale->get_name());
|
||||
}
|
||||
|
||||
|
@ -483,9 +483,6 @@ function grade_get_plugin_info($courseid, $active_type, $active_plugin) {
|
||||
|
||||
if ($outcomes = grade_helper::get_info_outcomes($courseid)) {
|
||||
$plugin_info['outcome'] = $outcomes;
|
||||
if ($active_type == 'outcome' && $active_plugin == 'import') {
|
||||
$plugin_info['outcome']['import'] = new grade_plugin_info('import', null, get_string('importoutcomes', 'grades'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($letters = grade_helper::get_info_letters($courseid)) {
|
||||
@ -2297,6 +2294,8 @@ abstract class grade_helper {
|
||||
$outcomes['course'] = new grade_plugin_info('course', $url, get_string('outcomescourse', 'grades'));
|
||||
$url = new moodle_url('/grade/edit/outcome/index.php', array('id'=>$courseid));
|
||||
$outcomes['edit'] = new grade_plugin_info('edit', $url, get_string('editoutcomes', 'grades'));
|
||||
$url = new moodle_url('/grade/edit/outcome/import.php', array('courseid'=>$courseid));
|
||||
$outcomes['import'] = new grade_plugin_info('import', $url, get_string('importoutcomes', 'grades'));
|
||||
} else {
|
||||
$url = new moodle_url('/grade/edit/outcome/course.php', array('id'=>$courseid));
|
||||
$outcomes['edit'] = new grade_plugin_info('edit', $url, get_string('outcomescourse', 'grades'));
|
||||
|
Loading…
x
Reference in New Issue
Block a user