diff --git a/question/bank/comment/lib.php b/question/bank/comment/lib.php index 5235f1df9d8..eacfa04a380 100644 --- a/question/bank/comment/lib.php +++ b/question/bank/comment/lib.php @@ -109,7 +109,7 @@ function qbank_comment_preview_display($question, $courseid): string { * @return string rendered output */ function qbank_comment_output_fragment_question_comment($args): string { - global $USER, $PAGE, $CFG; + global $USER, $PAGE, $CFG, $DB; $displaydata = []; require_once($CFG->dirroot . '/question/engine/bank.php'); $question = question_bank::load_question($args['questionid']); @@ -119,11 +119,12 @@ function qbank_comment_output_fragment_question_comment($args): string { // Just in case of any regression, it should not break the modal, just show the comments. if (class_exists('\\qbank_previewquestion\\question_preview_options')) { $options = new \qbank_previewquestion\question_preview_options($question); - $options->load_user_defaults(); - $options->set_from_request(); $quba->set_preferred_behaviour($options->behaviour); $slot = $quba->add_question($question, $options->maxmark); $quba->start_question($slot, $options->variant); + $transaction = $DB->start_delegated_transaction(); + question_engine::save_questions_usage_by_activity($quba); + $transaction->allow_commit(); $displaydata['question'] = $quba->render_question($slot, $options, '1'); } $displaydata['comment'] = qbank_comment_preview_display($question, $args['courseid']); diff --git a/question/bank/usage/lib.php b/question/bank/usage/lib.php index 6483ee67fce..3bad4b06518 100644 --- a/question/bank/usage/lib.php +++ b/question/bank/usage/lib.php @@ -32,7 +32,7 @@ defined('MOODLE_INTERNAL') || die(); * @return string rendered output */ function qbank_usage_output_fragment_question_usage(array $args): string { - global $USER, $PAGE, $CFG; + global $USER, $PAGE, $CFG, $DB; require_once($CFG->dirroot . '/question/engine/bank.php'); $displaydata = []; @@ -40,11 +40,12 @@ function qbank_usage_output_fragment_question_usage(array $args): string { $quba = question_engine::make_questions_usage_by_activity('core_question_preview', context_user::instance($USER->id)); $options = new \qbank_previewquestion\question_preview_options($question); - $options->load_user_defaults(); - $options->set_from_request(); $quba->set_preferred_behaviour($options->behaviour); $slot = $quba->add_question($question, $options->maxmark); $quba->start_question($slot, $options->variant); + $transaction = $DB->start_delegated_transaction(); + question_engine::save_questions_usage_by_activity($quba); + $transaction->allow_commit(); $displaydata['question'] = $quba->render_question($slot, $options, '1'); $questionusagetable = new \qbank_usage\tables\question_usage_table('question_usage_table', $question);