diff --git a/grade/import/csv/index.php b/grade/import/csv/index.php old mode 100755 new mode 100644 index 4cd70b3dd45..8681a839ead --- a/grade/import/csv/index.php +++ b/grade/import/csv/index.php @@ -79,8 +79,13 @@ if ($id) { continue; } - // this was idnumber - $gradeitems[$grade_item->id] = $grade_item->get_name(); + $displaystring = null; + if (!empty($grade_item->itemmodule)) { + $displaystring = get_string('modulename', $grade_item->itemmodule).': '.$grade_item->get_name(); + } else { + $displaystring = $grade_item->get_name(); + } + $gradeitems[$grade_item->id] = $displaystring; } } } @@ -88,7 +93,9 @@ if ($id) { if ($importcode = optional_param('importcode', '', PARAM_FILE)) { $filename = $CFG->dataroot.'/temp/gradeimport/cvs/'.$USER->id.'/'.$importcode; $fp = fopen($filename, "r"); - $header = explode($csv_delimiter, fgets($fp,GRADE_CSV_LINE_LENGTH), PARAM_RAW); + $headers = fgets($fp, GRADE_CSV_LINE_LENGTH); + $header = explode($csv_delimiter, $headers); + fclose($fp); } $mform2 = new grade_import_mapping_form(null, array('gradeitems'=>$gradeitems, 'header'=>$header)); @@ -122,7 +129,7 @@ if ($formdata = $mform->get_data()) { $fp = fopen($filename, "r"); // --- get header (field names) --- - $header = explode($csv_delimiter, fgets($fp,GRADE_CSV_LINE_LENGTH)); + $header = explode($csv_delimiter, fgets($fp, GRADE_CSV_LINE_LENGTH)); // print some preview $numlines = 0; // 0 preview lines displayed @@ -136,10 +143,10 @@ if ($formdata = $mform->get_data()) { } echo ''; while (!feof ($fp) && $numlines <= $formdata->previewrows) { - $lines = explode($csv_delimiter, fgets($fp,GRADE_CSV_LINE_LENGTH)); + $lines = explode($csv_delimiter, fgets($fp, GRADE_CSV_LINE_LENGTH)); echo ''; foreach ($lines as $line) { - echo ''.$line.'';; + echo ''.$line.''; } $numlines ++; echo ''; @@ -177,7 +184,9 @@ if ($formdata = $mform->get_data()) { $map = array(); // loops mapping_0, mapping_1 .. mapping_n and construct $map array foreach ($header as $i => $head) { - $map[$i] = $formdata->{'mapping_'.$i}; + if (isset($formdata->{'mapping_'.$i})) { + $map[$i] = $formdata->{'mapping_'.$i}; + } } // if mapping information is supplied @@ -185,7 +194,7 @@ if ($formdata = $mform->get_data()) { // check for mapto collisions $maperrors = array(); - foreach ($map as $i=>$j) { + foreach ($map as $i => $j) { if ($j == 0) { // you can have multiple ignores continue; @@ -211,14 +220,14 @@ if ($formdata = $mform->get_data()) { if ($fp = fopen($filename, "r")) { // read the first line makes sure this doesn't get read again - $header = explode($csv_delimiter, fgets($fp,GRADE_CSV_LINE_LENGTH)); + $header = explode($csv_delimiter, fgets($fp, GRADE_CSV_LINE_LENGTH)); $newgradeitems = array(); // temporary array to keep track of what new headers are processed $status = true; while (!feof ($fp)) { // add something - $line = explode($csv_delimiter, fgets($fp,GRADE_CSV_LINE_LENGTH)); + $line = explode($csv_delimiter, fgets($fp, GRADE_CSV_LINE_LENGTH)); if(count($line) <= 1){ // there is no data on this line, move on @@ -303,18 +312,19 @@ if ($formdata = $mform->get_data()) { $newgradeitem->importcode = $importcode; $newgradeitem->importer = $USER->id; - // failed to insert into new grade item buffer + // insert into new grade item buffer $newgradeitems[$key] = $DB->insert_record('grade_import_newitem', $newgradeitem); - // add this to grade_import_newitem table - // add the new id to $newgradeitem[$key] } $newgrade = new stdClass(); $newgrade->newgradeitem = $newgradeitems[$key]; - $newgrade->finalgrade = $value; - $newgrades[] = $newgrade; - // if not, put it in - // else, insert grade into the table + // if the user has a grade for this grade item + if (trim($value) != '-') { + // instead of omitting the grade we could insert one with finalgrade set to 0 + // we do not have access to grade item min grade + $newgrade->finalgrade = $value; + $newgrades[] = $newgrade; + } break; case 'feedback': if ($t1) { diff --git a/grade/import/grade_import_form.php b/grade/import/grade_import_form.php old mode 100755 new mode 100644