Skip to content

Commit

Permalink
Merge branch 'MDL-43539-master' of https://github.com/jamiepratt/moodle
Browse files Browse the repository at this point in the history
  • Loading branch information
Damyon Wiese committed Feb 17, 2014
2 parents 9e72fa9 + fc60441 commit a0cb27f
Showing 1 changed file with 22 additions and 36 deletions.
58 changes: 22 additions & 36 deletions mod/quiz/report/statistics/report.php
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ public function get_all_stats_and_analysis($quiz, $whichattempts, $groupstudents
$progress->progress(2);
if ($quizstats->s()) {
$subquestions = $questionstats->get_sub_questions();
$this->analyse_responses_for_all_questions_and_subquestions($qubaids, $questions, $subquestions, $progress);
$this->analyse_responses_for_all_questions_and_subquestions($questions, $subquestions, $qubaids, $progress);
}
$progress->progress(3);
$progress->end_progress();
Expand Down Expand Up @@ -576,55 +576,41 @@ protected function get_progress_trace_instance() {
return $this->progress;
}

protected function analyse_responses_for_all_questions_and_subquestions($qubaids, $questions, $subquestions,
$progress = null) {

protected function analyse_responses_for_all_questions_and_subquestions($questions, $subquestions, $qubaids, $progress = null) {
if ($progress === null) {
$progress = new \core\progress\null();
}

// Starting response analysis tasks.
$progress->start_progress('', count($questions) + count($subquestions));

// Starting response analysis of main questions.
$progress->start_progress('', count($questions), count($questions));
$done = $this->analyse_responses_for_questions($questions, $qubaids, $progress);

$done = array();
$donecount = 1;
foreach ($questions as $question) {
$progress->progress($donecount);
$donecount++;
if (!question_bank::get_qtype($question->qtype, false)->can_analyse_responses()) {
continue;
}
$done[$question->id] = 1;
$this->analyse_responses_for_questions($subquestions, $qubaids, $progress, $done);

$responesstats = new \core_question\statistics\responses\analyser($question);
$responesstats->calculate($qubaids);
}
// Finished all response analysis tasks.
$progress->end_progress();
}

// Starting response analysis of sub-questions.
$countsubquestions = count($subquestions);
$progress->start_progress('', $countsubquestions, $countsubquestions);
$donecount = 1;
foreach ($subquestions as $subquestion) {
$progress->progress($donecount);
$donecount++;
if (!question_bank::get_qtype($subquestion->qtype, false)->can_analyse_responses() ||
isset($done[$subquestion->id])) {
continue;
protected function analyse_responses_for_questions($questions, $qubaids, $progress = null, $done = array()) {
$countquestions = count($questions);
if (!$countquestions) {
return array();
}
if ($progress === null) {
$progress = new \core\progress\null();
}
$progress->start_progress('', $countquestions, $countquestions);
foreach ($questions as $question) {
$progress->increment_progress();
if (question_bank::get_qtype($question->qtype, false)->can_analyse_responses() && !isset($done[$question->id])) {
$responesstats = new \core_question\statistics\responses\analyser($question);
$responesstats->calculate($qubaids);
}
$done[$subquestion->id] = 1;

$responesstats = new \core_question\statistics\responses\analyser($subquestion);
$responesstats->calculate($qubaids);
$done[$question->id] = 1;
}
// Finished sub-question tasks.
$progress->end_progress();

// Finished all response analysis tasks.
$progress->end_progress();
return $done;
}

/**
Expand Down

0 comments on commit a0cb27f

Please sign in to comment.