/** * Adds a regrade, including comment, from a marker * * @param unknown $emarking * @param unknown $draft * @return multitype:string number unknown NULL */ function emarking_regrade($emarking, $draft) { global $DB, $USER; // Level id represents the level in the rubric. $rubriclevel = required_param('level', PARAM_INT); // Page number. $motive = required_param('motive', PARAM_INT); // Comment text. $comment = required_param('comment', PARAM_RAW_TRIMMED); // Verify that dates are ok. if (!emarking_is_regrade_requests_allowed($emarking)) { emarking_json_error('Regrade requests are not allowed for this activity.'); } // Get the rubric info from the level. if (!($rubricinfo = emarking_get_rubricinfo_by_level($rubriclevel))) { emarking_json_error("Invalid rubric info"); } $emarkingcomment = emarking_get_comment_draft_by_levelid($draft, $rubriclevel); // Check if there was already a regrade request. $newrecord = false; if (!($emarkingregrade = $DB->get_record('emarking_regrade', array('draft' => $draft->id, 'criterion' => $rubricinfo->criterionid)))) { $emarkingregrade = new stdClass(); $newrecord = true; } // Make the changes that are for new records and previous. $emarkingregrade->motive = $motive; $emarkingregrade->comment = $comment; $emarkingregrade->accepted = 0; $emarkingregrade->timemodified = time(); // If the record is new then add the basic information. if ($newrecord) { $emarkingregrade->student = $USER->id; $emarkingregrade->draft = $draft->id; $emarkingregrade->criterion = $rubricinfo->criterionid; $emarkingregrade->timecreated = time(); $emarkingregrade->markercomment = null; if ($emarkingcomment) { $emarkingregrade->levelid = $emarkingcomment->levelid; $emarkingregrade->markerid = $emarkingcomment->markerid; $emarkingregrade->bonus = $emarkingcomment->bonus; } } // Insert or update the regrade request. if ($newrecord) { $emarkingregrade->id = $DB->insert_record('emarking_regrade', $emarkingregrade); } else { $DB->update_record('emarking_regrade', $emarkingregrade); } // Update the submission. $draft->timemodified = time(); $draft->status = EMARKING_STATUS_REGRADING; if ($draft->timeregradingstarted == null) { $draft->timeregradingstarted = time(); } $draft->timeregradingended = time(); $DB->update_record('emarking_draft', $draft); // Send the output. $output = array('error' => '', 'regradeid' => $emarkingregrade->id, 'comment' => $comment, 'criterionid' => $rubricinfo->criterionid, 'motive' => $motive, 'timemodified' => time()); return $output; }
echo $OUTPUT->notification(get_string('mustseeexambeforeregrade', 'mod_emarking'), 'notifyproblem'); echo $OUTPUT->footer(); die; } $regrade = null; $emarkingcomment = null; if ($criterionid) { $regrade = $DB->get_record('emarking_regrade', array('draft' => $emarkingdraft->id, 'criterion' => $criterionid)); $emarkingcomment = $DB->get_record_sql(' SELECT ec.* FROM {emarking_comment} AS ec WHERE ec.levelid in ( SELECT id FROM {gradingform_rubric_levels} as l WHERE l.criterionid = :criterionid) AND ec.draft = :draft', array('criterionid' => $criterionid, 'draft' => $emarkingdraft->id)); } $requestswithindate = emarking_is_regrade_requests_allowed($emarking); if ($criterionid && !$delete && $requestswithindate) { $mform = new emarking_justice_regrade_form($url, array("criterion" => $criterion)); if ($regrade) { $mform->set_data($regrade); } if ($mform->is_cancelled()) { redirect($cancelurl); } else { if ($data = $mform->get_data()) { if (!$requestswithindate) { print_error('Fatal error! Requesting regrade outside allowed dates'); } $data->studentid = $USER->id; $data->moduleid = $cm->id; $data->modulename = 'emarking';
// You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * @package mod * @subpackage emarking * @copyright 2012 Jorge Villalón {@link http://www.uai.cl} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ /** Level id represents the level in the rubric **/ $rubriclevel = required_param('level', PARAM_INT); /** Page number **/ $motive = required_param('motive', PARAM_INT); /** Comment text **/ $comment = required_param('comment', PARAM_RAW_TRIMMED); // Verify that dates are ok if (!emarking_is_regrade_requests_allowed($emarking)) { emarking_json_error('Regrade requests are not allowed for this activity.'); } // Get the rubric info from the level if (!($rubricinfo = $DB->get_record_sql("\n\t\tSELECT c.definitionid, l.definition, l.criterionid, l.score, c.description\n\t\tFROM {gradingform_rubric_levels} as l\n\t\tINNER JOIN {gradingform_rubric_criteria} as c on (l.criterionid = c.id)\n\t\tWHERE l.id = ?", array($rubriclevel)))) { emarking_json_error("Invalid rubric info"); } $emarking_comment = $DB->get_record_sql(' SELECT ec.* FROM {emarking_comment} AS ec WHERE ec.levelid = :levelid AND ec.draft = :draft', array('levelid' => $rubriclevel, 'draft' => $draft->id)); // Check if there was already a regrade request $newrecord = false; if (!($emarking_regrade = $DB->get_record('emarking_regrade', array('draft' => $draft->id, 'criterion' => $rubricinfo->criterionid)))) { $emarking_regrade = new stdClass(); $newrecord = true;