mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 09:26:35 +02:00
MDL-46442 mod_assign: Notify users when grades are changed
This commit is contained in:
parent
8f06fffbe1
commit
a4b10a5244
2 changed files with 11 additions and 3 deletions
|
@ -1810,13 +1810,14 @@ class assign {
|
||||||
* Mark in the database that this grade record should have an update notification sent by 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
|
* @param stdClass $grade a grade record keyed on id
|
||||||
|
* @param bool $mailedoverride when true, flag notification to be sent again.
|
||||||
* @return bool true for success
|
* @return bool true for success
|
||||||
*/
|
*/
|
||||||
public function notify_grade_modified($grade) {
|
public function notify_grade_modified($grade, $mailedoverride = false) {
|
||||||
global $DB;
|
global $DB;
|
||||||
|
|
||||||
$flags = $this->get_user_flags($grade->userid, true);
|
$flags = $this->get_user_flags($grade->userid, true);
|
||||||
if ($flags->mailed != 1) {
|
if ($flags->mailed != 1 || $mailedoverride) {
|
||||||
$flags->mailed = 0;
|
$flags->mailed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6557,7 +6558,7 @@ class assign {
|
||||||
// Note the default if not provided for this option is true (e.g. webservices).
|
// Note the default if not provided for this option is true (e.g. webservices).
|
||||||
// This is for backwards compatibility.
|
// This is for backwards compatibility.
|
||||||
if (!isset($formdata->sendstudentnotifications) || $formdata->sendstudentnotifications) {
|
if (!isset($formdata->sendstudentnotifications) || $formdata->sendstudentnotifications) {
|
||||||
$this->notify_grade_modified($grade);
|
$this->notify_grade_modified($grade, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -887,6 +887,13 @@ class mod_assign_locallib_testcase extends mod_assign_base_testcase {
|
||||||
$this->assertEquals(2, count($messages));
|
$this->assertEquals(2, count($messages));
|
||||||
$this->assertEquals(1, $messages[0]->notification);
|
$this->assertEquals(1, $messages[0]->notification);
|
||||||
$this->assertEquals($assign->get_instance()->name, $messages[0]->contexturlname);
|
$this->assertEquals($assign->get_instance()->name, $messages[0]->contexturlname);
|
||||||
|
|
||||||
|
// Regrading a grade causes a notification to the user.
|
||||||
|
$data->sendstudentnotifications = true;
|
||||||
|
$assign->testable_apply_grade_to_user($data, $this->students[0]->id, 0);
|
||||||
|
assign::cron();
|
||||||
|
$messages = $sink->get_messages();
|
||||||
|
$this->assertEquals(3, count($messages));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_is_graded() {
|
public function test_is_graded() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue