diff --git a/lib/questionlib.php b/lib/questionlib.php index f7a2eff980b..82175a1b9d6 100644 --- a/lib/questionlib.php +++ b/lib/questionlib.php @@ -28,6 +28,7 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +use core_question\local\bank\question_version_status; defined('MOODLE_INTERNAL') || die(); @@ -360,8 +361,10 @@ function question_delete_question($questionid): void { $questionstocheck[] = $question->parent; } - // Do not delete a question if it is used by an activity module + // Do not delete a question if it is used by an activity module. Just mark the version hidden. if (questions_in_use($questionstocheck)) { + $DB->set_field('question_versions', 'status', + question_version_status::QUESTION_STATUS_HIDDEN, ['questionid' => $questionid]); return; } diff --git a/question/bank/deletequestion/delete.php b/question/bank/deletequestion/delete.php index b41ba32bdae..dbb697aafec 100644 --- a/question/bank/deletequestion/delete.php +++ b/question/bank/deletequestion/delete.php @@ -83,12 +83,7 @@ if ($deleteselected && ($confirm = optional_param('confirm', '', PARAM_ALPHANUM) foreach ($questionlist as $questionid) { $questionid = (int)$questionid; question_require_capability_on($questionid, 'edit'); - if (questions_in_use(array($questionid))) { - $DB->set_field('question_versions', 'status', - \core_question\local\bank\question_version_status::QUESTION_STATUS_HIDDEN, ['questionid' => $questionid]); - } else { - question_delete_question($questionid); - } + question_delete_question($questionid); } } redirect($returnurl);