/** * 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; }
protected function process_submission($data) { // Backwards compatibility. reset($data); if (count($data) == 1 && key($data) === '-finish') { $this->finish(); } $this->quba->process_all_actions(time(), $this->response_data_to_post($data)); }