$this->logger->log_assumption("Ignoring bogus state in attempt at question {$state->question}");
$this->sequencenumber = 0;
$this->qa->steps = array();
- } else if ($state->answer == '') {
+ } else if ($this->qtypeupdater->is_blank_answer($state)) {
$this->logger->log_assumption("Ignoring second start state with blank answer in attempt at question {$state->question}");
return;
} else {
return $answer1 == $answer2;
}
+ public function is_blank_answer($state) {
+ return $state->answer == '';
+ }
+
public abstract function right_answer();
public abstract function response_summary($state);
public abstract function was_answered($state);
class qtype_multichoice_qe2_attempt_updater extends question_qtype_attempt_updater {
protected $order;
+ public function is_blank_answer($state) {
+ // blank multichoice answers are not empty strings, they rather end in a colon
+ $a = $state->answer;
+ $empty = (substr($a, strlen($a) - 1) == ':');
+ return $empty;
+ }
+
public function right_answer() {
if ($this->question->options->single) {
foreach ($this->question->options->answers as $ans) {