Skip to content

Commit

Permalink
MDL-36167: Update all users in assignment quickgrade form to ensure f…
Browse files Browse the repository at this point in the history
…eedback is saved
  • Loading branch information
Luke Tucker authored and Damyon Wiese committed Nov 21, 2012
1 parent d937f59 commit 90387b1
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions mod/assign/locallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -3441,19 +3441,16 @@ private function process_save_quick_grades() {
// gets a list of possible users and look for values based upon that.
foreach ($participants as $userid => $unused) {
$modified = optional_param('grademodified_' . $userid, -1, PARAM_INT);
if ($modified >= 0) {
// gather the userid, updated grade and last modified value
$record = new stdClass();
$record->userid = $userid;
// gather the userid, updated grade and last modified value
$record = new stdClass();
$record->userid = $userid;
$gradevalue = optional_param('quickgrade_' . $userid, '', PARAM_TEXT);
if($modified >= 0) {
$record->grade = unformat_float(required_param('quickgrade_' . $record->userid, PARAM_TEXT));
$record->lastmodified = $modified;
$record->gradinginfo = grade_get_grades($this->get_course()->id, 'mod', 'assign', $this->get_instance()->id, array($userid));
$users[$userid] = $record;
}
}
if (empty($users)) {
// Quick check to see whether we have any users to update and we don't
return get_string('quickgradingchangessaved', 'assign'); // Technical lie
$record->lastmodified = $modified;
$record->gradinginfo = grade_get_grades($this->get_course()->id, 'mod', 'assign', $this->get_instance()->id, array($userid));
$users[$userid] = $record;
}

list($userids, $params) = $DB->get_in_or_equal(array_keys($users), SQL_PARAMS_NAMED);
Expand Down Expand Up @@ -3487,7 +3484,8 @@ private function process_save_quick_grades() {
foreach ($this->feedbackplugins as $plugin) {
if ($plugin->is_visible() && $plugin->is_enabled() && $plugin->supports_quickgrading()) {
if ($plugin->is_quickgrading_modified($modified->userid, $grade)) {
if ((int)$current->lastmodified > (int)$modified->lastmodified) {
if ($modified->lastmodified >= 0 &&
(int)$current->lastmodified > (int)$modified->lastmodified) {
return get_string('errorrecordmodified', 'assign');
} else {
$modifiedusers[$modified->userid] = $modified;
Expand Down

0 comments on commit 90387b1

Please sign in to comment.