Пример #1
0
 public function test_is_manual_grade_in_range_ungraded()
 {
     $this->assertTrue(question_engine::is_manual_grade_in_range(1, 2));
 }
 /**
  * Process a comment for a particular question on an attempt
  *
  * @param int                        $slot
  * @param \mod_activequiz\activequiz $rtq
  *
  * @return bool
  */
 public function process_comment($slot = null, $rtq)
 {
     global $DB;
     // if there is no slot return false
     if (empty($slot)) {
         return false;
     }
     // Process any data that was submitted.
     if (data_submitted() && confirm_sesskey()) {
         if (optional_param('submit', false, PARAM_BOOL) && \question_engine::is_manual_grade_in_range($this->attempt->questionengid, $slot)) {
             $transaction = $DB->start_delegated_transaction();
             $this->quba->process_all_actions(time());
             $this->save();
             $transaction->allow_commit();
             // Trigger event for question manually graded
             $params = array('objectid' => $this->quba->get_question($slot)->id, 'courseid' => $rtq->getCourse()->id, 'context' => $rtq->getContext(), 'other' => array('rtqid' => $rtq->getRTQ()->id, 'attemptid' => $this->attempt->id, 'slot' => $slot, 'sessionid' => $this->attempt->sessionid));
             $event = \mod_activequiz\event\question_manually_graded::create($params);
             $event->trigger();
             return true;
         }
     }
     return false;
 }
Пример #3
0
 protected function validate_submitted_marks()
 {
     $qubaids = optional_param('qubaids', null, PARAM_SEQUENCE);
     if (!$qubaids) {
         return false;
     }
     $qubaids = clean_param_array(explode(',', $qubaids), PARAM_INT);
     $slots = optional_param('slots', '', PARAM_SEQUENCE);
     if (!$slots) {
         $slots = array();
     } else {
         $slots = explode(',', $slots);
     }
     foreach ($qubaids as $qubaid) {
         foreach ($slots as $slot) {
             if (!question_engine::is_manual_grade_in_range($qubaid, $slot)) {
                 return false;
             }
         }
     }
     return true;
 }
Пример #4
0
require_login($attemptobj->get_course(), false, $attemptobj->get_cm());
$attemptobj->require_capability('mod/quiz:grade');
// Print the page header.
$PAGE->set_pagelayout('popup');
$PAGE->set_heading($attemptobj->get_course()->fullname);
$output = $PAGE->get_renderer('mod_quiz');
echo $output->header();
// Prepare summary information about this question attempt.
$summarydata = array();
// Quiz name.
$summarydata['quizname'] = array('title' => get_string('modulename', 'quiz'), 'content' => format_string($attemptobj->get_quiz_name()));
// Question name.
$summarydata['questionname'] = array('title' => get_string('question', 'quiz'), 'content' => $attemptobj->get_question_name($slot));
// Process any data that was submitted.
if (data_submitted() && confirm_sesskey()) {
    if (optional_param('submit', false, PARAM_BOOL) && question_engine::is_manual_grade_in_range($attemptobj->get_uniqueid(), $slot)) {
        $transaction = $DB->start_delegated_transaction();
        $attemptobj->process_submitted_actions(time());
        $transaction->allow_commit();
        // Log this action.
        $params = array('objectid' => $attemptobj->get_question_attempt($slot)->get_question()->id, 'courseid' => $attemptobj->get_courseid(), 'context' => context_module::instance($attemptobj->get_cmid()), 'other' => array('quizid' => $attemptobj->get_quizid(), 'attemptid' => $attemptobj->get_attemptid(), 'slot' => $slot));
        $event = \mod_quiz\event\question_manually_graded::create($params);
        $event->trigger();
        echo $output->notification(get_string('changessaved'), 'notifysuccess');
        close_window(2, true);
        die;
    }
}
// Print quiz information.
echo $output->review_summary_table($summarydata, 0);
// Print the comment form.