MDL-59252 mod_workshop: Move assessment evaluation code to API

This commit is contained in:
Juan Leyva 2017-06-29 14:34:41 +01:00 committed by Eloy Lafuente (stronk7)
parent d769f87171
commit 981f511a14
2 changed files with 29 additions and 13 deletions

View File

@ -147,19 +147,7 @@ if ($canoverridegrades or $cansetassessmentweight) {
'overridablegradinggrade' => $canoverridegrades);
$feedbackform = $workshop->get_feedbackreviewer_form($PAGE->url, $assessment, $options);
if ($data = $feedbackform->get_data()) {
$data = file_postupdate_standard_editor($data, 'feedbackreviewer', array(), $workshop->context);
$record = new stdclass();
$record->id = $assessment->id;
if ($cansetassessmentweight) {
$record->weight = $data->weight;
}
if ($canoverridegrades) {
$record->gradinggradeover = $workshop->raw_grade_value($data->gradinggradeover, $workshop->gradinggrade);
$record->gradinggradeoverby = $USER->id;
$record->feedbackreviewer = $data->feedbackreviewer;
$record->feedbackreviewerformat = $data->feedbackreviewerformat;
}
$DB->update_record('workshop_assessments', $record);
$workshop->evaluate_assessment($assessment, $data, $cansetassessmentweight, $canoverridegrades);
redirect($workshop->view_url());
}
}

View File

@ -3090,6 +3090,34 @@ class workshop {
return $rawgrade;
}
/**
* Evaluates an assessment.
*
* @param stdClass $assessment the assessment
* @param stdClass $data the assessment data to be updated
* @param bool $cansetassessmentweight whether the user can change the assessment weight
* @param bool $canoverridegrades whether the user can override the assessment grades
* @return void
* @since Moodle 3.4
*/
public function evaluate_assessment($assessment, $data, $cansetassessmentweight, $canoverridegrades) {
global $DB, $USER;
$data = file_postupdate_standard_editor($data, 'feedbackreviewer', array(), $this->context);
$record = new stdclass();
$record->id = $assessment->id;
if ($cansetassessmentweight) {
$record->weight = $data->weight;
}
if ($canoverridegrades) {
$record->gradinggradeover = $this->raw_grade_value($data->gradinggradeover, $this->gradinggrade);
$record->gradinggradeoverby = $USER->id;
$record->feedbackreviewer = $data->feedbackreviewer;
$record->feedbackreviewerformat = $data->feedbackreviewerformat;
}
$DB->update_record('workshop_assessments', $record);
}
////////////////////////////////////////////////////////////////////////////////
// Internal methods (implementation details) //
////////////////////////////////////////////////////////////////////////////////