Skip to content

Commit

Permalink
MDL-66360 core_grade: New method to send grade notifications to students
Browse files Browse the repository at this point in the history
  • Loading branch information
rezaies authored and lameze committed Nov 11, 2019
1 parent 9666372 commit 9672c8a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
30 changes: 30 additions & 0 deletions grade/classes/component_gradeitem.php
Expand Up @@ -483,4 +483,34 @@ public function get_advanced_grading_instance(stdClass $grader, stdClass $grade,

return $gradinginstance;
}

/**
* Sends a notification about the item being graded for the student.
*
* @param stdClass $gradeduser The user being graded
* @param stdClass $grader The user who is grading
*/
public function send_student_notification(stdClass $gradeduser, stdClass $grader): void {
list($itemtype, $itemmodule) = \core_component::normalize_component($this->component);
$gradeitem = \grade_item::fetch([
'itemtype' => $itemtype,
'itemmodule' => $itemmodule,
'iteminstance' => $this->itemnumber,
]);

$eventdata = new \core\message\message();
$eventdata->courseid = $this->context->get_course_context()->instanceid;
$eventdata->component = 'moodle';
$eventdata->name = 'gradenotifications';
$eventdata->userfrom = $grader;
$eventdata->userto = $gradeduser;
$eventdata->subject = get_string('gradenotificationsubject', 'grades');
$eventdata->fullmessage = get_string('gradenotificationmessage', 'grades', ['name' => $gradeitem->get_name()]);

$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
$eventdata->notification = 1;
message_send($eventdata);
}
}
2 changes: 2 additions & 0 deletions lang/en/grades.php
Expand Up @@ -318,6 +318,8 @@
$string['grademax_help'] = 'This setting determines the maximum grade when using the value grade type. The maximum grade for an activity-based grade item is set on the activity settings page.';
$string['grademin'] = 'Minimum grade';
$string['grademin_help'] = 'This setting determines the minimum grade when using the value grade type.';
$string['gradenotificationmessage'] = 'You have new feedback on your work for "{$a->name}"';
$string['gradenotificationsubject'] = 'Your have been graded';
$string['gradeoutcomeitem'] = 'Grade outcome item';
$string['gradeoutcomes'] = 'Outcomes';
$string['gradeoutcomescourses'] = 'Course outcomes';
Expand Down

0 comments on commit 9672c8a

Please sign in to comment.