Skip to content
Browse files

Merge branch 'MDL-36667-24' of git://github.com/damyon/moodle into MO…

…ODLE_24_STABLE
  • Loading branch information...
2 parents e04f57c + 3d6b1bf commit 181b7f5fea307c8668aa3e2c4f4fbe2c6bff0a74 @danpoltawski danpoltawski committed
View
2 mod/assign/feedback/file/importziplib.php
@@ -266,7 +266,7 @@ public function import_zip_files($assignment, $fileplugin) {
$fileplugin->update_file_count($grade);
// Update the last modified time on the grade which will trigger student notifications.
- $assignment->update_grade($grade);
+ $assignment->notify_grade_modified($grade);
}
}
}
View
1 mod/assign/feedback/file/locallib.php
@@ -403,6 +403,7 @@ public function view_batch_upload_files($users) {
// Now copy each of these files to the users feedback file area.
foreach ($users as $userid) {
$grade = $this->assignment->get_user_grade($userid, true);
+ $this->assignment->notify_grade_modified($grade);
$this->copy_area_files($fs,
$this->assignment->get_context()->id,
View
2 mod/assign/feedback/offline/locallib.php
@@ -157,6 +157,7 @@ public function process_import_grades($draftid, $importid, $ignoremodified) {
$grade->grade = $record->grade;
$grade->grader = $USER->id;
if ($this->assignment->update_grade($grade)) {
+ $this->assignment->notify_grade_modified($grade);
$this->assignment->add_to_log('grade submission', $this->assignment->format_grade_for_log($grade));
$updatecount += 1;
}
@@ -178,6 +179,7 @@ public function process_import_grades($draftid, $importid, $ignoremodified) {
if ($newvalue != $oldvalue) {
$updatecount += 1;
$grade = $this->assignment->get_user_grade($record->user->id, true);
+ $this->assignment->notify_grade_modified($grade);
if ($plugin->set_editor_text($field, $newvalue, $grade->id)) {
$logdesc = get_string('feedbackupdate', 'assignfeedback_offline',
array('field'=>$description,
View
23 mod/assign/locallib.php
@@ -1477,6 +1477,23 @@ static function cron() {
}
/**
+ * Mark in the database that this grade record should have an update notification sent by cron.
+ *
+ * @param stdClass $grade a grade record keyed on id
+ * @return bool true for success
+ */
+ public function notify_grade_modified($grade) {
+ global $DB;
+
+ $grade->timemodified = time();
+ if ($grade->mailed != 1) {
+ $grade->mailed = 0;
+ }
+
+ return $DB->update_record('assign_grades', $grade);
+ }
+
+ /**
* Update a grade in the grade table for the assignment and in the gradebook
*
* @param stdClass $grade a grade record keyed on id
@@ -2175,6 +2192,10 @@ public function get_user_grade($userid, $create) {
$grade->grade = -1;
$grade->grader = $USER->id;
$grade->extensionduedate = 0;
+
+ // The mailed flag can be one of 3 values: 0 is unsent, 1 is sent and 2 is do not send yet.
+ // This is because students only want to be notified about certain types of update (grades and feedback).
+ $grade->mailed = 2;
$gid = $DB->insert_record('assign_grades', $grade);
$grade->id = $gid;
return $grade;
@@ -3712,6 +3733,7 @@ private function process_save_quick_grades() {
}
$this->update_grade($grade);
+ $this->notify_grade_modified($grade);
// save outcomes
if ($CFG->enableoutcomes) {
@@ -4406,6 +4428,7 @@ private function apply_grade_to_user($formdata, $userid) {
}
}
$this->update_grade($grade);
+ $this->notify_grade_modified($grade);
$user = $DB->get_record('user', array('id' => $userid), '*', MUST_EXIST);
$this->add_to_log('grade submission', $this->format_grade_for_log($grade));

0 comments on commit 181b7f5

Please sign in to comment.
Something went wrong with that request. Please try again.