From 981f511a14d57755342e0deece40203b72c0441e Mon Sep 17 00:00:00 2001 From: Juan Leyva Date: Thu, 29 Jun 2017 14:34:41 +0100 Subject: [PATCH] MDL-59252 mod_workshop: Move assessment evaluation code to API --- mod/workshop/assessment.php | 14 +------------- mod/workshop/locallib.php | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/mod/workshop/assessment.php b/mod/workshop/assessment.php index 23d2d27c01a..d9896422098 100644 --- a/mod/workshop/assessment.php +++ b/mod/workshop/assessment.php @@ -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()); } } diff --git a/mod/workshop/locallib.php b/mod/workshop/locallib.php index c452c8b9885..6d85286f1c3 100644 --- a/mod/workshop/locallib.php +++ b/mod/workshop/locallib.php @@ -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) // //////////////////////////////////////////////////////////////////////////////// -- 2.43.0