Пример #1
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($draftid, $status, $qc, $criteriaids, $criteriascores, $comments, $pctmarked, $pctmarkeduser, $regrades, $pages, $numcriteria, $numcriteriauser, $emarking, $rubriccriteria)
{
    global $OUTPUT;
    // If the draft is published or the student was absent just show the icon
    if ($status <= EMARKING_STATUS_ABSENT || $status == EMARKING_STATUS_PUBLISHED || $status == EMARKING_STATUS_GRADING && $pctmarked == 100) {
        return emarking_get_draft_status_icon($status, true, 100);
    }
    if ($emarking->type == EMARKING_TYPE_NORMAL && ($status == EMARKING_STATUS_GRADING || $status == EMARKING_STATUS_SUBMITTED)) {
        // Completion matrix
        $matrix = '';
        $markedcriteria = explode(",", $criteriaids);
        $markedcriteriascores = explode(",", $criteriascores);
        if (count($markedcriteria) > 0 && $numcriteria > 0) {
            $matrix = "<div id='sub-{$draftid}' 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>";
        }
        $matrixlink = "<div class=\"progress\"><a style='cursor:pointer;' onclick='\$(\"#sub-{$draftid}\").dialog({modal:true,buttons:{Ok: function(){\$(this).dialog(\"close\");}}});'>\n    <div class=\"progress-bar\" role=\"progressbar\" aria-valuenow=\"{$pctmarked}\"\n    aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width:{$pctmarked}%\">\n    <span class=\"sr-only\">{$pctmarked}%</span>\n    </div></a>\n    </div>" . $matrix;
        return $matrixlink;
    }
    if ($status == EMARKING_STATUS_REGRADING) {
        // Percentage of criteria already marked for this draft
        $pctmarkedtitle = $numcriteria - $comments . " pending criteria";
        $matrixlink = "" . ($numcriteriauser > 0 ? $pctmarkeduser . "% / " : '') . $pctmarked . "%" . ($regrades > 0 ? '<br/>' . $regrades . ' ' . get_string('regradespending', 'mod_emarking') : '');
    }
    $statushtml = $qc == 0 ? emarking_get_draft_status_icon($status, true) : $OUTPUT->pix_icon('i/completion-auto-y', get_string("qualitycontrol", "mod_emarking"));
    // Add warning icon if there are missing pages in draft
    if ($emarking->totalpages > 0 && $emarking->totalpages > $pages && $status > EMARKING_STATUS_MISSING) {
        $statushtml .= $OUTPUT->pix_icon('i/risk_xss', get_string('missingpages', 'mod_emarking'));
    }
    return $statushtml;
}
Пример #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;
}