. /** * This page allows the teacher to enter a manual grade for a particular question. * This page is expected to only be used in a popup window. * * @package mod * @subpackage quiz * @copyright gustav delius 2006 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once('../../config.php'); require_once('locallib.php'); $attemptid = required_param('attempt', PARAM_INT); // attempt id $slot = required_param('slot', PARAM_INT); // question number in attempt $PAGE->set_url('/mod/quiz/comment.php', array('attempt' => $attemptid, 'slot' => $slot)); $attemptobj = quiz_attempt::create($attemptid); // Can only grade finished attempts. if (!$attemptobj->is_finished()) { print_error('attemptclosed', 'quiz'); } // Check login and permissions. require_login($attemptobj->get_courseid(), false, $attemptobj->get_cm()); $attemptobj->require_capability('mod/quiz:grade'); // Log this action. add_to_log($attemptobj->get_courseid(), 'quiz', 'manualgrade', 'comment.php?attempt=' . $attemptobj->get_attemptid() . '&slot=' . $slot, $attemptobj->get_quizid(), $attemptobj->get_cmid()); // Print the page header $PAGE->set_pagelayout('popup'); echo $OUTPUT->header(); echo $OUTPUT->heading(format_string($attemptobj->get_question_name($slot))); // Process any data that was submitted. if (data_submitted() && confirm_sesskey()) { if (optional_param('submit', false, PARAM_BOOL) && question_behaviour::is_manual_grade_in_range($attemptobj->get_uniqueid(), $slot)) { $transaction = $DB->start_delegated_transaction(); $attemptobj->process_all_actions(time()); $transaction->allow_commit(); echo $OUTPUT->notification(get_string('changessaved'), 'notifysuccess'); close_window(2, true); die; } } // Print the comment form. echo '
'; echo $attemptobj->render_question_for_commenting($slot); ?>
'; $PAGE->requires->js_init_call('M.mod_quiz.init_comment_popup', null, false, quiz_get_js_module()); // End of the page. echo $OUTPUT->footer();