Exemple #1
0
/**
 * Get emarking grades in a format compatible with the gradebook
 *
 * @param
 *            $emarking
 * @param int $userid            
 * @return array
 */
function emarking_get_user_grades($emarking, $userid = 0)
{
    global $DB, $CFG;
    require_once $CFG->dirroot . '/grade/grading/lib.php';
    emarking_calculate_grades_users($emarking, $userid);
    $gradebookgrades = array();
    $params = array('emarking' => $emarking->id);
    if ($userid > 0) {
        $params['student'] = $userid;
    }
    $submissions = $DB->get_records('emarking_submission', $params);
    foreach ($submissions as $submission) {
        $gradebookgrade = new stdClass();
        $gradebookgrade->userid = $submission->student;
        $gradebookgrade->datesubmitted = $submission->timecreated;
        $gradebookgrade->rawgrade = $submission->grade;
        $gradebookgrade->usermodified = $submission->teacher;
        $gradebookgrade->dategraded = $submission->timemodified;
        $gradebookgrades[$submission->student] = $gradebookgrade;
    }
    return $gradebookgrades;
}
}
$url = new moodle_url('/mod/emarking/publish.php', array('id' => $cm->id));
$PAGE->set_pagelayout('incourse');
$PAGE->set_popup_notification_allowed(false);
$PAGE->set_url($url);
$PAGE->set_context($context);
$PAGE->set_course($course);
$PAGE->set_cm($cm);
$PAGE->set_title(get_string('publishtitle', 'mod_emarking'));
$PAGE->set_heading($course->fullname);
$PAGE->navbar->add(get_string('publishtitle', 'mod_emarking'));
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('publishinggrades', 'mod_emarking'));
// Create progress bar
$pbar = new progress_bar('publish', 500, true);
emarking_calculate_grades_users($emarking);
// Count documents ignored and processed
$totaldocumentsprocessed = 0;
$totaldocumentsignored = 0;
$totalsubmissions = count($submissions);
foreach ($submissions as $submissionid) {
    if (!($submission = $DB->get_record('emarking_submission', array('id' => $submissionid)))) {
        $totaldocumentsignored++;
        continue;
    }
    if (!($student = $DB->get_record('user', array('id' => $submission->student)))) {
        $totaldocumentsignored++;
        continue;
    }
    if (emarking_multi_create_response_pdf($submission, $student, $context, $cmid)) {
        $totaldocumentsprocessed++;
Exemple #3
0
/**
 * Creates or updates grade item for the give emarking instance
 * Needed by grade_update_mod_grades() in lib/gradelib.php
 *
 * @param stdClass $emarking
 *        	instance object with extra cmidnumber and modname property
 * @param null $grades        	
 * @return int 0 if ok, error code otherwise
 */
function emarking_grade_item_update(stdClass $emarking, $grades = null)
{
    global $CFG;
    require_once $CFG->libdir . '/gradelib.php';
    if ($grades == null) {
        emarking_calculate_grades_users($emarking);
    }
    $params = array();
    $params['itemname'] = clean_param($emarking->name, PARAM_NOTAGS);
    $params['gradetype'] = GRADE_TYPE_VALUE;
    $params['grademax'] = $emarking->grade;
    $params['grademin'] = $emarking->grademin;
    if ($grades === 'reset') {
        $params['reset'] = true;
        $grades = null;
    }
    $ret = grade_update('mod/emarking', $emarking->course, 'mod', 'emarking', $emarking->id, 0, $grades, $params);
    emarking_publish_all_grades($emarking);
    return $ret;
}