Exemplo n.º 1
0
/**
 * Creates an especial array with the navigation tabs for emarking markers training mode
 *
 * @param unknown $context
 *            The course context to validate capabilit
 * @param unknown $cm
 *            The course module (emarking activity)
 * @return multitype:tabobject
 */
function emarking_tabs_markers_training($context, $cm, $emarking, $generalprogress, $delphiprogress)
{
    global $CFG;
    global $USER;
    global $OUTPUT;
    // Tab's icons.
    $timeicon = $OUTPUT->pix_icon('i/scheduled', null);
    $scalesicon = $OUTPUT->pix_icon('i/scales', null);
    // Array for tabs data.
    $tabs = array();
    $firststagetable = new html_table();
    $firststagetable->data[] = array(get_string('stage', 'mod_emarking'), $timeicon . " " . get_string('marking_deadline', 'mod_emarking'), $scalesicon . " " . get_string('stage_general_progress', 'mod_emarking'));
    if ($generalprogress >= 100 && $emarking->firststagedate < time()) {
        $firststagetable->data[] = array(get_string('delphi_stage_one', 'mod_emarking'), "&nbsp;", $OUTPUT->pix_icon('i/grade_correct', ""));
    } else {
        $firststagetable->data[] = array(get_string('delphi_stage_one', 'mod_emarking'), emarking_time_difference($emarking->firststagedate, time(), false), emarking_get_progress_circle($generalprogress));
    }
    $firststagetable->data[] = array(get_string('delphi_stage_two', 'mod_emarking'), emarking_time_difference($emarking->secondstagedate, time(), false), emarking_get_progress_circle($delphiprogress));
    return html_writer::table($firststagetable);
}
Exemplo n.º 2
0
/**
 * Creates a draft status information in HTML format
 *
 * @param unknown $draftid
 * @param unknown $status
 * @param unknown $qc
 * @param unknown $criteriaids
 * @param unknown $criteriascores
 * @param unknown $comments
 * @param unknown $pctmarked
 * @param unknown $pctmarkeduser
 * @param unknown $regrades
 * @param unknown $pages
 * @param unknown $numcriteria
 * @param unknown $numcriteriauser
 * @param unknown $emarking
 * @return string
 */
function emarking_get_draft_status_info($exam, $d, $numcriteria, $numcriteriauser, $emarking, $rubriccriteria)
{
    global $OUTPUT;
    // Add warning icon if there are missing pages in draft.
    $totalpages = $exam->usebackside == 0 ? $exam->totalpages : $exam->totalpages * 2;
    $missingpages = $totalpages > 0 && $totalpages > $d->pages && $d->status > EMARKING_STATUS_MISSING;
    $missingpagesmessage = $missingpages ? $OUTPUT->pix_icon('i/risk_xss', get_string('missingpages', 'mod_emarking')) : '';
    // If the draft is published or the student was absent just show the icon.
    if ($d->status <= EMARKING_STATUS_ABSENT || $d->status == EMARKING_STATUS_PUBLISHED || $d->status == EMARKING_STATUS_GRADING && $d->pctmarked == 100) {
        return emarking_get_draft_status_icon($d->status, true, 100) . $missingpagesmessage;
    }
    if (($emarking->type == EMARKING_TYPE_ON_SCREEN_MARKING || $emarking->type == EMARKING_TYPE_PEER_REVIEW) && ($d->status == EMARKING_STATUS_GRADING || $d->status == EMARKING_STATUS_SUBMITTED)) {
        // Completion matrix.
        $matrix = '';
        $markedcriteria = explode(",", $d->criteriaids);
        $markedcriteriascores = explode(",", $d->criteriascores);
        if (count($markedcriteria) > 0 && $numcriteria > 0) {
            $matrix = "<div id='sub-{$d->id}' style='display:none;'>\n            <table width='100%'>";
            $matrix .= "<tr><th>" . get_string('criterion', 'mod_emarking') . "</th><th style='text-align:center'>" . get_string('corrected', 'mod_emarking') . "</th></tr>";
            foreach ($rubriccriteria->rubric_criteria as $criterion) {
                $matrix .= "<tr><td>" . $criterion['description'] . "</td><td style='text-align:center'>";
                $key = array_search($criterion['id'], $markedcriteria);
                if ($key !== false) {
                    $matrix .= $OUTPUT->pix_icon('i/completion-manual-y', round($markedcriteriascores[$key], 1) . "pts");
                } else {
                    $matrix .= $OUTPUT->pix_icon('i/completion-manual-n', null);
                }
                $matrix .= "</td></tr>";
            }
            $matrix .= "</table></div>";
        }
        $pct = round($d->pctmarked, 0);
        $matrixlink = html_writer::start_div();
        $matrixlink .= emarking_get_progress_circle($d->pctmarked, 'green', 'onclick=\'$("#sub-' . $d->id . '").dialog({modal:true,buttons:{Ok: function(){$(this).dialog("close");}}});\'', get_string('marking_progress', 'mod_emarking')) . $matrix;
        if ($numcriteriauser > 0) {
            $matrixlink .= emarking_get_progress_circle($d->pctmarkeduser, 'orange', '', get_string('yourcontribution', 'mod_emarking'));
        }
        $matrixlink .= html_writer::end_div();
        return $matrixlink . $missingpagesmessage;
    }
    if ($d->status == EMARKING_STATUS_REGRADING) {
        // Percentage of criteria already marked for this draft.
        $pctmarkedtitle = $numcriteria - $d->comments . " pending criteria";
        $matrixlink = "" . ($numcriteriauser > 0 ? $d->pctmarkeduser . "% / " : '') . $d->pctmarked . "%" . ($d->regrades > 0 ? '<br/>' . $d->regrades . ' ' . get_string('regradespending', 'mod_emarking') : '');
    }
    $statushtml = $d->qc == 0 ? emarking_get_draft_status_icon($d->status, true) : $OUTPUT->pix_icon('i/completion-auto-y', get_string("qualitycontrol", "mod_emarking"));
    return $statushtml . $missingpagesmessage;
}
Exemplo n.º 3
0
$firststagetable->data[] = array($OUTPUT->heading(get_string("exams", "mod_emarking"), 5));
foreach ($dataexams as $sid => $d) {
    $examurl = new moodle_url("/mod/emarking/marking/agreement.php", array("id" => $cm->id, "exam" => $sid));
    $firststagetable->data[] = array($OUTPUT->action_link($examurl, emarking_get_progress_circle($d, 'green') . '&nbsp;' . get_string("exam", "mod_emarking") . '&nbsp;' . $sid));
}
$secondstagetable = new html_table();
$secondstagetable->data[] = array($OUTPUT->heading(get_string("criteria", "mod_emarking"), 5));
foreach ($datacriteria as $cid => $d) {
    $criterionurl = new moodle_url("/mod/emarking/marking/agreement.php", array("id" => $cm->id, "criterion" => $cid));
    $secondstagetable->data[] = array($OUTPUT->action_link($criterionurl, emarking_get_progress_circle($d, 'green') . '&nbsp;' . $definition->rubric_criteria[$cid]['description']));
}
$thirdstagetable = new html_table();
$thirdstagetable->data[] = array($OUTPUT->heading(get_string("marker", "mod_emarking"), 5));
foreach ($datamarkers as $mid => $d) {
    $markerurl = new moodle_url("/mod/emarking/marking/agreement.php", array("id" => $cm->id, "marker" => $mid));
    $thirdstagetable->data[] = array(emarking_get_progress_circle($d, 'green') . '&nbsp;' . $OUTPUT->action_link($markerurl, $markersnames[$mid]));
}
// Get the course module for the emarking, to build the emarking url.
$urlagreement = new moodle_url('/mod/emarking/marking/agreement.php', array('id' => $cm->id));
// Heading and tabs if we are within a course module.
echo $OUTPUT->heading($emarking->name);
echo emarking_tabs_markers_training($context, $cm, $emarking, 100, $avgagreement);
emarking_show_export_buttons($issupervisor, $definition, $cm, $emarking, $numdraftsgrading);
echo $OUTPUT->heading(get_string('agreement', 'mod_emarking'), 4);
echo html_writer::start_tag('table', array('class' => 'agreementtable'));
echo html_writer::start_tag('tr');
echo html_writer::tag('td', html_writer::table($firststagetable));
echo html_writer::tag('td', html_writer::table($secondstagetable));
echo html_writer::tag('td', html_writer::table($thirdstagetable));
echo html_writer::end_tag('tr');
echo html_writer::end_tag('table');