diff --git a/question/classes/statistics/questions/all_calculated_for_qubaid_condition.php b/question/classes/statistics/questions/all_calculated_for_qubaid_condition.php index 9d993000a97..92d89d02d91 100644 --- a/question/classes/statistics/questions/all_calculated_for_qubaid_condition.php +++ b/question/classes/statistics/questions/all_calculated_for_qubaid_condition.php @@ -276,11 +276,11 @@ class all_calculated_for_qubaid_condition { $timemodified = time(); foreach ($this->get_all_slots() as $slot) { - $this->for_slot($slot)->cache($qubaids); + $this->for_slot($slot)->cache($qubaids, $timemodified); } foreach ($this->get_all_subq_ids() as $subqid) { - $this->for_subq($subqid)->cache($qubaids); + $this->for_subq($subqid)->cache($qubaids, $timemodified); } $transaction->allow_commit(); diff --git a/question/classes/statistics/questions/calculated.php b/question/classes/statistics/questions/calculated.php index e896ca9a7f9..763c0000130 100644 --- a/question/classes/statistics/questions/calculated.php +++ b/question/classes/statistics/questions/calculated.php @@ -219,12 +219,13 @@ class calculated { * Cache calculated stats stored in this object in 'question_statistics' table. * * @param \qubaid_condition $qubaids + * @param int|null $timemodified the modified time to store. Defaults to the current time. */ - public function cache($qubaids) { + public function cache($qubaids, $timemodified = null) { global $DB; $toinsert = new \stdClass(); $toinsert->hashcode = $qubaids->get_hash_code(); - $toinsert->timemodified = time(); + $toinsert->timemodified = $timemodified ?? time(); foreach ($this->fieldsindb as $field) { $toinsert->{$field} = $this->{$field}; } @@ -232,7 +233,7 @@ class calculated { if ($this->get_variants()) { foreach ($this->variantstats as $variantstat) { - $variantstat->cache($qubaids); + $variantstat->cache($qubaids, $timemodified); } } }