/**
  * 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;
 }
예제 #2
0
 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));
 }