From: skodak Date: Tue, 18 Dec 2007 13:53:18 +0000 (+0000) Subject: MDL-12517 reverting the moving of data processign, returning array of warnings instea... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=7567447034fddd5f47f92504046f7b250b7eb094;p=moodle.git MDL-12517 reverting the moving of data processign, returning array of warnings instead from function; merged from MOODLE_19_STABLE --- diff --git a/grade/report/grader/index.php b/grade/report/grader/index.php index 76b40fb3a5..f749be7ff4 100644 --- a/grade/report/grader/index.php +++ b/grade/report/grader/index.php @@ -121,13 +121,22 @@ if (!empty($target) && !empty($action) && confirm_sesskey()) { // Initialise the grader report object $report = new grade_report_grader($courseid, $gpr, $context, $page, $sortitemid); + +/// processing posted grades & feedback here +if ($data = data_submitted() and confirm_sesskey() and has_capability('moodle/grade:edit', $context)) { + $warnings = $report->process_data($data); +} else { + $warings = array(); +} + + // Override perpage if set in URL if ($perpageurl) { $report->user_prefs['studentsperpage'] = $perpageurl; } +// final grades MUST be loaded after the processing $report->load_users(); - $numusers = $report->get_numusers(); $report->load_final_grades(); @@ -146,9 +155,9 @@ echo $report->group_selector; echo '
'; echo $report->get_toggles_html(); -/// processing posted grades & feedback here -if ($data = data_submitted() and confirm_sesskey()) { - $report->process_data($data); +//show warnings if any +foreach($warnings as $warning) { + notify($warning); } $studentsperpage = $report->get_pref('studentsperpage'); diff --git a/grade/report/grader/lib.php b/grade/report/grader/lib.php index 51af47b800..dcae2552c0 100644 --- a/grade/report/grader/lib.php +++ b/grade/report/grader/lib.php @@ -146,14 +146,12 @@ class grade_report_grader extends grade_report { /** * Processes the data sent by the form (grades and feedbacks). - * @var array $data - * @return bool Success or Failure (array of errors). + * Caller is reposible for all access control checks + * @param array $data form submission (with magic quotes) + * @return array empty array if success, array of warnings if something fails. */ function process_data($data) { - - if (!has_capability('moodle/grade:edit', $this->context)) { - return false; - } + $warnings = array(); // always initialize all arrays $queue = array(); @@ -209,11 +207,11 @@ class grade_report_grader extends grade_report { $errorstr = 'morethanmax'; } if ($errorstr) { - $user = get_record('user', 'id', $userid,'','','','','id, firstname, lastname'); + $user = get_record('user', 'id', $userid, '', '', '', '', 'id, firstname, lastname'); $gradestr = new object(); $gradestr->username = fullname($user); $gradestr->itemname = $grade_item->get_name(); - notify(get_string($errorstr, 'grades', $gradestr)); + $warnings[] = get_string($errorstr, 'grades', $gradestr); } } else if ($data_type == 'feedback') { @@ -229,7 +227,7 @@ class grade_report_grader extends grade_report { $grade_item->update_final_grade($userid, $finalgrade, 'gradebook', $feedback, FORMAT_MOODLE); } - return true; + return $warnings; }