Merge branch 'MDL-58278-master' of git://github.com/damyon/moodle

This commit is contained in:
David Monllao 2017-04-20 14:05:39 +08:00
commit ba1ad89e7d
3 changed files with 10 additions and 5 deletions

View File

@ -78,11 +78,6 @@ class mod_assign_grade_form extends moodleform {
$errors = parent::validation($data, $files);
$instance = $this->assignment->get_instance();
if ($instance->markingworkflow && !empty($data['sendstudentnotifications']) &&
$data['workflowstate'] != ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) {
$errors['workflowstate'] = get_string('studentnotificationworkflowstateerror', 'assign');
}
// Advanced grading.
if (!array_key_exists('grade', $data)) {
return $errors;

View File

@ -7791,6 +7791,14 @@ class assign {
$feedbackmodified) {
$this->update_grade($grade, !empty($formdata->addattempt));
}
// We never send notifications if we have marking workflow and the grade is not released.
if ($this->get_instance()->markingworkflow &&
isset($formdata->workflowstate) &&
$formdata->workflowstate != ASSIGN_MARKING_WORKFLOW_STATE_RELEASED) {
$formdata->sendstudentnotifications = false;
}
// Note the default if not provided for this option is true (e.g. webservices).
// This is for backwards compatibility.
if (!isset($formdata->sendstudentnotifications) || $formdata->sendstudentnotifications) {

View File

@ -1244,10 +1244,12 @@ class mod_assign_locallib_testcase extends mod_assign_base_testcase {
$data->grade = '50.0';
// This student will not receive notification.
$data->sendstudentnotifications = 1;
$data->workflowstate = ASSIGN_MARKING_WORKFLOW_STATE_READYFORRELEASE;
$assign->testable_apply_grade_to_user($data, $this->students[0]->id, 0);
// This student will receive notification.
$data->sendstudentnotifications = 1;
$data->workflowstate = ASSIGN_MARKING_WORKFLOW_STATE_RELEASED;
$assign->testable_apply_grade_to_user($data, $this->students[1]->id, 0);