if ($id) { // example is specified $example = $workshopplus->get_example_by_id($id); $workshopplus->log('view example', $workshopplus->exsubmission_url($example->id), $example->id); } else { // no example specified - create new one require_capability('mod/workshopplus:manageexamples', $workshopplus->context); $example = new stdclass(); $example->id = null; $example->authorid = $USER->id; $example->example = 1; } $canmanage = has_capability('mod/workshopplus:manageexamples', $workshopplus->context); $canassess = has_capability('mod/workshopplus:peerassess', $workshopplus->context); $refasid = $DB->get_field('workshopplus_assessments', 'id', array('submissionid' => $example->id, 'weight' => 1)); if ($example->id and ($canmanage or $workshopplus->assessing_examples_allowed() and $canassess)) { // ok you can go } elseif (is_null($example->id) and $canmanage) { // ok you can go } else { print_error('nopermissions', 'error', $workshopplus->view_url(), 'view or manage example submission'); } if ($id and $delete and $confirm and $canmanage) { require_sesskey(); $workshopplus->delete_submission($example); redirect($workshopplus->view_url()); } if ($id and $assess and $canmanage) { // reference assessment of an example is the assessment with the weight = 1. There should be just one // such assessment require_sesskey();
} $workshopplus = new workshopplus($workshopplus, $cm, $course); $PAGE->set_url($workshopplus->exassess_url($assessment->id)); $PAGE->set_title($workshopplus->name); $PAGE->set_heading($course->fullname); $PAGE->navbar->add(get_string('assessingexample', 'workshopplus')); $currenttab = 'assessment'; $canmanage = has_capability('mod/workshopplus:manageexamples', $workshopplus->context); $isreviewer = $USER->id == $assessment->reviewerid; if ($isreviewer or $canmanage) { // such a user can continue } else { print_error('nopermissions', 'error', $workshopplus->view_url(), 'assess example submission'); } // only the reviewer is allowed to modify the assessment if ($canmanage and $assessment->weight == 1 or $isreviewer and $workshopplus->assessing_examples_allowed()) { $assessmenteditable = true; } else { $assessmenteditable = false; } // load the grading strategy logic $strategy = $workshopplus->grading_strategy_instance(); // load the assessment form and process the submitted data eventually $mform = $strategy->get_assessment_form($PAGE->url, 'assessment', $assessment, $assessmenteditable); // Set data managed by the workshopplus core, subplugins set their own data themselves. $currentdata = (object) array('feedbackauthor' => $assessment->feedbackauthor, 'feedbackauthorformat' => $assessment->feedbackauthorformat); if ($assessmenteditable and $workshopplus->overallfeedbackmode) { $currentdata = file_prepare_standard_editor($currentdata, 'feedbackauthor', $workshopplus->overall_feedback_content_options(), $workshopplus->context, 'mod_workshopplus', 'overallfeedback_content', $assessment->id); if ($workshopplus->overallfeedbackfiles) { $currentdata = file_prepare_standard_filemanager($currentdata, 'feedbackauthorattachment', $workshopplus->overall_feedback_attachment_options(), $workshopplus->context, 'mod_workshopplus', 'overallfeedback_attachment', $assessment->id); }
$PAGE->set_url($workshopplus->excompare_url($sid, $aid)); $example = $workshopplus->get_example_by_id($sid); $assessment = $workshopplus->get_assessment_by_id($aid); if ($assessment->submissionid != $example->id) { print_error('invalidarguments'); } $mformassessment = $strategy->get_assessment_form($PAGE->url, 'assessment', $assessment, false); if ($refasid = $DB->get_field('workshopplus_assessments', 'id', array('submissionid' => $example->id, 'weight' => 1))) { $reference = $workshopplus->get_assessment_by_id($refasid); $mformreference = $strategy->get_assessment_form($PAGE->url, 'assessment', $reference, false); } $canmanage = has_capability('mod/workshopplus:manageexamples', $workshopplus->context); $isreviewer = $USER->id == $assessment->reviewerid; if ($canmanage) { // ok you can go } elseif ($isreviewer and $workshopplus->assessing_examples_allowed()) { // ok you can go } else { print_error('nopermissions', 'error', $workshopplus->view_url(), 'compare example assessment'); } $PAGE->set_title($workshopplus->name); $PAGE->set_heading($course->fullname); $PAGE->navbar->add(get_string('examplecomparing', 'workshopplus')); // Output starts here $output = $PAGE->get_renderer('mod_workshopplus'); echo $output->header(); echo $output->heading(format_string($workshopplus->name)); echo $output->heading(get_string('assessedexample', 'workshopplus'), 3); echo $output->render($workshopplus->prepare_example_submission($example)); // if the reference assessment is available, display it if (!empty($mformreference)) {