$id = required_param('id', PARAM_INT); // course id
$course = get_record('course', 'id', $id);
$feedback = optional_param('feedback', '', PARAM_ALPHA);
-$action = 'exportods';
-print_header($course->shortname.': '.get_string('grades'), $course->fullname, grade_nav($course, $action));
+$strgrades = get_string('grades', 'grades');
+$actionstr = get_string('exportods', 'grades');
+$gradenav = "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>";
+$gradenav .= " -> <a href=\"$CFG->wwwroot/grade/index.php?id=$course->id\">$strgrades</a>";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
// process post information
if (($data = data_submitted()) && confirm_sesskey()) {
$id = required_param('id', PARAM_INT); // course id
$feedback = optional_param('feedback', '', PARAM_ALPHA);
$course = get_record('course', 'id', $id);
-$action = 'exporttxt'; // for printing header
-print_header($course->shortname.': '.get_string('grades'), $course->fullname, grade_nav($course, $action));
+$strgrades = get_string('grades', 'grades');
+$actionstr = get_string('exporttxt', 'grades');
+$gradenav = "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>";
+$gradenav .= " -> <a href=\"$CFG->wwwroot/grade/index.php?id=$course->id\">$strgrades</a>";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
// process post information
if (($data = data_submitted()) && confirm_sesskey()) {
$course = get_record('course', 'id', $id);
$feedback = optional_param('feedback', '', PARAM_ALPHA);
-$action = 'exporttxt';
-print_header($course->shortname.': '.get_string('grades'), $course->fullname, grade_nav($course, $action));
+$strgrades = get_string('grades', 'grades');
+$actionstr = get_string('exportxls', 'grades');
+$gradenav = "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>";
+$gradenav .= " -> <a href=\"$CFG->wwwroot/grade/index.php?id=$course->id\">$strgrades</a>";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
// process post information
if (($data = data_submitted()) && confirm_sesskey()) {
$course = get_record('course', 'id', $id);
$feedback = optional_param('feedback', '', PARAM_ALPHA);
-$action = 'exportxml';
-print_header($course->shortname.': '.get_string('grades'), $course->fullname, grade_nav($course, $action));
+$strgrades = get_string('grades', 'grades');
+$actionstr = get_string('exportxml', 'grades');
+$gradenav = "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>";
+$gradenav .= " -> <a href=\"$CFG->wwwroot/grade/index.php?id=$course->id\">$strgrades</a>";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
// process post information
if (($data = data_submitted()) && confirm_sesskey()) {
$csv_delimiter2 = ",";
}
-$action = 'importcsv';
-print_header($course->shortname.': '.get_string('grades'), $course->fullname, grade_nav($course, $action));
+$strgrades = get_string('grades', 'grades');
+$actionstr = get_string('importcsv', 'grades');
+$gradenav = "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>";
+$gradenav .= " -> <a href=\"$CFG->wwwroot/grade/index.php?id=$course->id\">$strgrades</a>";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
$mform = new grade_import_form();
//$mform2 = new grade_import_mapping_form();
error ('could not open file '.$filename);
}
+ $map = array();
// loops mapping_0, mapping_1 .. mapping_n and construct $map array
- foreach ($header as $i=>$head) {
+ foreach ($header as $i => $head) {
$map[$i] = $formdata->{'mapping_'.$i};
}
$status = false;
import_cleanup($importcode);
notify(get_string('importfailed', 'grades'));
- break 3;
+ break 3;
+ }
+
+ // check if grade item is locked if so, abort
+ if ($gradeitem->locked) {
+ $status = false;
+ import_cleanup($importcode);
+ notify(get_string('gradeitemlocked', 'grades'));
+ break 3;
}
unset($newgrade);
$newgrades[] = $newgrade;
} // otherwise, we ignore this column altogether
// because user has chosen to ignore them (e.g. institution, address etc)
- break;
+ break;
}
}
$status = false;
import_cleanup($importcode);
notify('user mapping error, could not find user!');
- break;
+ break;
}
// insert results of this students into buffer
if (!empty($newgrades)) {
foreach ($newgrades as $newgrade) {
+
+ // check if grade_grades is locked and if so, abort
+ if ($grade_grades = new grade_grades(array('itemid'=>$newgrade->itemid, 'userid'=>$studentid))) {
+ if ($grade_grades->locked) {
+ // individual grade locked
+ $status = false;
+ import_cleanup($importcode);
+ notify(get_string('gradegradeslocked', 'grades'));
+ break 2;
+ }
+ }
+
$newgrade->import_code = $importcode;
$newgrade->userid = $studentid;
if (!insert_record('grade_import_values', $newgrade)) {
// could not insert into temporary table
$status = false;
import_cleanup($importcode);
- notify(get_string('importfailed', 'grades'));
- break 2;
+ notify(get_string('importfailed', 'grades'));
+ break 2;
}
}
}
// the grade item for this is not updated
$newfeedback->import_code = $importcode;
$newfeedback->userid = $studentid;
- insert_record('grade_import_values', $newfeedback);
+ insert_record('grade_import_values', $newfeedback);
}
}
}
-
}
/// at this stage if things are all ok, we commit the changes from temp table
return false;
}
}
- }
+ }
}
-
+
/// then find all existing items
if ($gradeitems = get_records_sql("SELECT DISTINCT (itemid)
}
// get all grades with this item
if ($grades = get_records('grade_import_values', 'itemid', $itemid)) {
-
+
// make the grardes array for update_grade
foreach ($grades as $grade) {
if (!$gradeitem->update_final_grade($grade->userid, $grade->finalgrade, NULL, NULL, $grade->feedback)) {
$failed = 1;
- break 2;
+ break 2;
}
}
- //$itemdetails -> idnumber = $gradeitem->idnumber;
- $modifieditems[] = $itemid;
+ //$itemdetails -> idnumber = $gradeitem->idnumber;
+ $modifieditems[] = $itemid;
- }
+ }
if (!empty($failed)) {
import_cleanup($importcode);
- return false;
- }
+ return false;
+ }
}
}
-
+
notify(get_string('importsuccess', 'grades'));
print_continue($CFG->wwwroot.'/course/view.php?id='.$courseid);
// clean up
* @param string importcode - import batch identifier
*/
function import_cleanup($importcode) {
- // remove entries from buffer table
+ // remove entries from buffer table
delete_records('grade_import_values', 'import_code', $importcode);
- delete_records('grade_import_newitem', 'import_code', $importcode);
+ delete_records('grade_import_newitem', 'import_code', $importcode);
}
/// Returns the file as one big long string
require_once('../grade_import_form.php');
require_once($CFG->dirroot.'/grade/lib.php');
-$action = 'importxml';
-print_header($course->shortname.': '.get_string('grades'), $course->fullname, grade_nav($course, $action));
+$strgrades = get_string('grades', 'grades');
+$actionstr = get_string('importxml', 'grades');
+$gradenav = "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>";
+$gradenav .= " -> <a href=\"$CFG->wwwroot/grade/index.php?id=$course->id\">$strgrades</a>";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
$mform = new grade_import_form();