MDL-13375 reverting, the bug is somewhere else
This commit is contained in:
+5
-4
@@ -26,6 +26,7 @@
|
||||
* Library of functions for gradebook - both public and internal
|
||||
*
|
||||
* @author Moodle HQ developers
|
||||
* @version $Id$
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
|
||||
* @package moodlecore
|
||||
*/
|
||||
@@ -244,15 +245,15 @@ function grade_update($source, $courseid, $itemtype, $itemmodule, $iteminstance,
|
||||
* @param string $itemmodule 'forum, 'quiz', etc.
|
||||
* @param int $iteminstance id of the item module
|
||||
* @param int $userid ID of the graded user
|
||||
* @param array $data array itemnumber=>grade_item_id=>outcomegrade
|
||||
* @param array $data array itemnumber=>outcomegrade
|
||||
*/
|
||||
function grade_update_outcomes($source, $courseid, $itemtype, $itemmodule, $iteminstance, $userid, $data) {
|
||||
if ($items = grade_item::fetch_all(array('itemtype'=>$itemtype, 'itemmodule'=>$itemmodule, 'iteminstance'=>$iteminstance, 'courseid'=>$courseid))) {
|
||||
foreach ($items as $item) {
|
||||
if (!array_key_exists($item->itemnumber, $data) || !array_key_exists($item->id, $data[$item->itemnumber])) {
|
||||
if (!array_key_exists($item->itemnumber, $data)) {
|
||||
continue;
|
||||
}
|
||||
$grade = $data[$item->itemnumber][$item->id] < 1 ? null : $data[$item->itemnumber][$item->id];
|
||||
$grade = $data[$item->itemnumber] < 1 ? null : $data[$item->itemnumber];
|
||||
$item->update_final_grade($userid, $grade, $source);
|
||||
}
|
||||
}
|
||||
@@ -438,7 +439,7 @@ function grade_get_grades($courseid, $itemtype, $itemmodule, $iteminstance, $use
|
||||
$outcome->grades[$userid] = $grade;
|
||||
}
|
||||
}
|
||||
$return->outcomes[$grade_item->itemnumber][$grade_item->id] = $outcome;
|
||||
$return->outcomes[$grade_item->itemnumber] = $outcome;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+38
-47
@@ -692,23 +692,21 @@ class assignment_base {
|
||||
if (!empty($CFG->enableoutcomes) and empty($SESSION->flextable['mod-assignment-submissions']->collapse['outcome'])) {
|
||||
|
||||
if (!empty($grading_info->outcomes)) {
|
||||
foreach($grading_info->outcomes as $itemnumber=>$grade_items) {
|
||||
foreach ($grade_items as $grade_item_id => $outcome) {
|
||||
if ($outcome->grades[$submission->userid]->locked) {
|
||||
continue;
|
||||
}
|
||||
foreach($grading_info->outcomes as $n=>$outcome) {
|
||||
if ($outcome->grades[$submission->userid]->locked) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($quickgrade){
|
||||
$output.= 'opener.document.getElementById("outcome_'.$itemnumber.'_'.$grade_item_id .'_'.$submission->userid.
|
||||
'").selectedIndex="'.$outcome->grades[$submission->userid]->grade.'";'."\n";
|
||||
if ($quickgrade){
|
||||
$output.= 'opener.document.getElementById("outcome_'.$n.'_'.$submission->userid.
|
||||
'").selectedIndex="'.$outcome->grades[$submission->userid]->grade.'";'."\n";
|
||||
|
||||
} else {
|
||||
$options = make_grades_menu(-$outcome->scaleid);
|
||||
$options[0] = get_string('nooutcome', 'grades');
|
||||
$output.= 'opener.document.getElementById("outcome_'.$n.'_'.$submission->userid.'").innerHTML="'.$options[$outcome->grades[$submission->userid]->grade]."\";\n";
|
||||
}
|
||||
|
||||
} else {
|
||||
$options = make_grades_menu(-$outcome->scaleid);
|
||||
$options[0] = get_string('nooutcome', 'grades');
|
||||
$output.= 'opener.document.getElementById("outcome_'.$itemnumber.'_'.$grade_item_id .'_'.$submission->userid.'")
|
||||
.innerHTML="'.$options[$outcome->grades[$submission->userid]->grade]."\";\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -891,19 +889,17 @@ class assignment_base {
|
||||
echo '<div class="clearer"></div>';
|
||||
|
||||
if (!empty($CFG->enableoutcomes)) {
|
||||
foreach($grading_info->outcomes as $itemnumber=>$grade_items) {
|
||||
foreach ($grade_items as $grade_item_id => $outcome) {
|
||||
echo '<div class="outcome"><label for="menuoutcome_'.$itemnumber.'_'.$grade_item_id .'">'.$outcome->name.'</label> ';
|
||||
$options = make_grades_menu(-$outcome->scaleid);
|
||||
if ($outcome->grades[$submission->userid]->locked) {
|
||||
$options[0] = get_string('nooutcome', 'grades');
|
||||
echo $options[$outcome->grades[$submission->userid]->grade];
|
||||
} else {
|
||||
choose_from_menu($options, 'outcome_'.$itemnumber.'_'.$grade_item_id .'['.$userid.']', $outcome->grades[$submission->userid]->grade, get_string('nooutcome', 'grades'), '', 0, false, false, 0, 'menuoutcome_'.$itemnumber.'_'.$grade_item_id);
|
||||
}
|
||||
echo '</div>';
|
||||
echo '<div class="clearer"></div>';
|
||||
foreach($grading_info->outcomes as $n=>$outcome) {
|
||||
echo '<div class="outcome"><label for="menuoutcome_'.$n.'">'.$outcome->name.'</label> ';
|
||||
$options = make_grades_menu(-$outcome->scaleid);
|
||||
if ($outcome->grades[$submission->userid]->locked) {
|
||||
$options[0] = get_string('nooutcome', 'grades');
|
||||
echo $options[$outcome->grades[$submission->userid]->grade];
|
||||
} else {
|
||||
choose_from_menu($options, 'outcome_'.$n.'['.$userid.']', $outcome->grades[$submission->userid]->grade, get_string('nooutcome', 'grades'), '', 0, false, false, 0, 'menuoutcome_'.$n);
|
||||
}
|
||||
echo '</div>';
|
||||
echo '<div class="clearer"></div>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1261,22 +1257,19 @@ class assignment_base {
|
||||
|
||||
if ($uses_outcomes) {
|
||||
|
||||
foreach($grading_info->outcomes as $itemnumber=>$grade_items) {
|
||||
foreach ($grade_items as $grade_item_id => $outcome) {
|
||||
$outcomes .= '<div class="outcome"><label>'.$outcome->name.'</label>';
|
||||
$options = make_grades_menu(-$outcome->scaleid);
|
||||
foreach($grading_info->outcomes as $n=>$outcome) {
|
||||
$outcomes .= '<div class="outcome"><label>'.$outcome->name.'</label>';
|
||||
$options = make_grades_menu(-$outcome->scaleid);
|
||||
|
||||
if ($outcome->grades[$auser->id]->locked or !$quickgrade) {
|
||||
$options[0] = get_string('nooutcome', 'grades');
|
||||
$outcomes .= ': <span id="outcome_'.$itemnumber.'_'.$grade_item_id . '_'.$auser->id.'">'.$options[$outcome->grades[$auser->id]->grade].'</span>';
|
||||
} else {
|
||||
$outcomes .= ' ';
|
||||
$outcomes .= choose_from_menu($options, 'outcome_'.$itemnumber.'_'.$grade_item_id . '['.$auser->id.']',
|
||||
$outcome->grades[$auser->id]->grade, get_string('nooutcome', 'grades'), '', 0, true, false, 0,
|
||||
'outcome_'.$itemnumber.'_'.$grade_item_id .'_'.$auser->id);
|
||||
}
|
||||
$outcomes .= '</div>';
|
||||
if ($outcome->grades[$auser->id]->locked or !$quickgrade) {
|
||||
$options[0] = get_string('nooutcome', 'grades');
|
||||
$outcomes .= ': <span id="outcome_'.$n.'_'.$auser->id.'">'.$options[$outcome->grades[$auser->id]->grade].'</span>';
|
||||
} else {
|
||||
$outcomes .= ' ';
|
||||
$outcomes .= choose_from_menu($options, 'outcome_'.$n.'['.$auser->id.']',
|
||||
$outcome->grades[$auser->id]->grade, get_string('nooutcome', 'grades'), '', 0, true, false, 0, 'outcome_'.$n.'_'.$auser->id);
|
||||
}
|
||||
$outcomes .= '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1426,12 +1419,10 @@ class assignment_base {
|
||||
$grading_info = grade_get_grades($this->course->id, 'mod', 'assignment', $this->assignment->id, $userid);
|
||||
|
||||
if (!empty($grading_info->outcomes)) {
|
||||
foreach($grading_info->outcomes as $itemnumber=>$grade_items) {
|
||||
foreach ($grade_items as $grade_item_id => $old) {
|
||||
$name = 'outcome_' . $itemnumber . '_' . $grade_item_id;
|
||||
if (isset($formdata->{$name}[$userid]) and $old->grades[$userid]->grade != $formdata->{$name}[$userid]) {
|
||||
$data[$itemnumber][$grade_item_id] = $formdata->{$name}[$userid];
|
||||
}
|
||||
foreach($grading_info->outcomes as $n=>$old) {
|
||||
$name = 'outcome_'.$n;
|
||||
if (isset($formdata->{$name}[$userid]) and $old->grades[$userid]->grade != $formdata->{$name}[$userid]) {
|
||||
$data[$n] = $formdata->{$name}[$userid];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user