Example #1
0
/**
 * 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;
}
Example #2
0
    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';
Example #3
0
// 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;