diff --git a/grade/export/ods/index.php b/grade/export/ods/index.php
index 97625668bed..070bbc52eb5 100755
--- a/grade/export/ods/index.php
+++ b/grade/export/ods/index.php
@@ -28,8 +28,12 @@ require_once('grade_export_ods.php');
$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 = "wwwroot/course/view.php?id=$course->id\">$course->shortname";
+$gradenav .= " -> wwwroot/grade/index.php?id=$course->id\">$strgrades";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
// process post information
if (($data = data_submitted()) && confirm_sesskey()) {
diff --git a/grade/export/txt/index.php b/grade/export/txt/index.php
index b0bd0fafa27..6617f91f236 100755
--- a/grade/export/txt/index.php
+++ b/grade/export/txt/index.php
@@ -28,8 +28,12 @@ require_once('grade_export_txt.php');
$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 = "wwwroot/course/view.php?id=$course->id\">$course->shortname";
+$gradenav .= " -> wwwroot/grade/index.php?id=$course->id\">$strgrades";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
// process post information
if (($data = data_submitted()) && confirm_sesskey()) {
diff --git a/grade/export/xls/index.php b/grade/export/xls/index.php
index cc152c8fd85..f23f6becf84 100755
--- a/grade/export/xls/index.php
+++ b/grade/export/xls/index.php
@@ -29,8 +29,12 @@ $id = required_param('id', PARAM_INT); // course id
$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 = "wwwroot/course/view.php?id=$course->id\">$course->shortname";
+$gradenav .= " -> wwwroot/grade/index.php?id=$course->id\">$strgrades";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
// process post information
if (($data = data_submitted()) && confirm_sesskey()) {
diff --git a/grade/export/xml/index.php b/grade/export/xml/index.php
index 0045e0a046d..b65f52e4f83 100755
--- a/grade/export/xml/index.php
+++ b/grade/export/xml/index.php
@@ -29,8 +29,12 @@ $id = required_param('id', PARAM_INT); // course id
$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 = "wwwroot/course/view.php?id=$course->id\">$course->shortname";
+$gradenav .= " -> wwwroot/grade/index.php?id=$course->id\">$strgrades";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
// process post information
if (($data = data_submitted()) && confirm_sesskey()) {
diff --git a/grade/import/csv/index.php b/grade/import/csv/index.php
index 146b9556ddb..6782547ee29 100755
--- a/grade/import/csv/index.php
+++ b/grade/import/csv/index.php
@@ -28,8 +28,12 @@ if (isset($CFG->CSV_DELIMITER)) {
$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 = "wwwroot/course/view.php?id=$course->id\">$course->shortname";
+$gradenav .= " -> wwwroot/grade/index.php?id=$course->id\">$strgrades";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
$mform = new grade_import_form();
//$mform2 = new grade_import_mapping_form();
@@ -52,8 +56,9 @@ if (($formdata = data_submitted()) && !empty($formdata->map)) {
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};
}
@@ -208,7 +213,15 @@ if (($formdata = data_submitted()) && !empty($formdata->map)) {
$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);
@@ -217,7 +230,7 @@ if (($formdata = data_submitted()) && !empty($formdata->map)) {
$newgrades[] = $newgrade;
} // otherwise, we ignore this column altogether
// because user has chosen to ignore them (e.g. institution, address etc)
- break;
+ break;
}
}
@@ -227,21 +240,33 @@ if (($formdata = data_submitted()) && !empty($formdata->map)) {
$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;
}
}
}
@@ -256,11 +281,10 @@ if (($formdata = data_submitted()) && !empty($formdata->map)) {
// 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
diff --git a/grade/import/lib.php b/grade/import/lib.php
index 93ae6459cf0..5fb1a0c4a81 100755
--- a/grade/import/lib.php
+++ b/grade/import/lib.php
@@ -74,9 +74,9 @@ function grade_import_commit($courseid, $importcode) {
return false;
}
}
- }
+ }
}
-
+
/// then find all existing items
if ($gradeitems = get_records_sql("SELECT DISTINCT (itemid)
@@ -95,26 +95,26 @@ function grade_import_commit($courseid, $importcode) {
}
// 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
@@ -127,9 +127,9 @@ function grade_import_commit($courseid, $importcode) {
* @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
diff --git a/grade/import/xml/index.php b/grade/import/xml/index.php
index 3e37a94e691..a2478d22232 100755
--- a/grade/import/xml/index.php
+++ b/grade/import/xml/index.php
@@ -16,8 +16,12 @@ require_once('../lib.php');
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 = "wwwroot/course/view.php?id=$course->id\">$course->shortname";
+$gradenav .= " -> wwwroot/grade/index.php?id=$course->id\">$strgrades";
+$gradenav .= " -> $actionstr";
+print_header($course->shortname.': '.get_string('grades'), $course->fullname, $gradenav);
$mform = new grade_import_form();