Example #1
0
 /**
  * Create a question_attempt_with_restricted_history
  * @param question_attempt $baseqa The question_attempt to make a restricted version of.
  * @param int $lastseq the index of the last step to include.
  * @param string $preferredbehaviour the preferred behaviour. It is slightly
  *      annoyting that this needs to be passed, but unavoidable for now.
  */
 public function __construct(question_attempt $baseqa, $lastseq, $preferredbehaviour)
 {
     $this->baseqa = $baseqa->get_full_qa();
     if ($lastseq < 0 || $lastseq >= $this->baseqa->get_num_steps()) {
         throw new coding_exception('$lastseq out of range', $lastseq);
     }
     $this->steps = array_slice($this->baseqa->steps, 0, $lastseq + 1);
     $this->observer = new question_usage_null_observer();
     // This should be a straight copy of all the remaining fields.
     $this->id = $this->baseqa->id;
     $this->usageid = $this->baseqa->usageid;
     $this->slot = $this->baseqa->slot;
     $this->question = $this->baseqa->question;
     $this->maxmark = $this->baseqa->maxmark;
     $this->minfraction = $this->baseqa->minfraction;
     $this->maxfraction = $this->baseqa->maxfraction;
     $this->questionsummary = $this->baseqa->questionsummary;
     $this->responsesummary = $this->baseqa->responsesummary;
     $this->rightanswer = $this->baseqa->rightanswer;
     $this->flagged = $this->baseqa->flagged;
     // Except behaviour, where we need to create a new one.
     $this->behaviour = question_engine::make_behaviour($this->baseqa->get_behaviour_name(), $this, $preferredbehaviour);
 }