From 931a4cbd56de54c61e0b33611d702605474035e3 Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Tue, 11 Jul 2023 11:55:16 +0100 Subject: [PATCH] MDL-76996 question bank: fix errors when qbank_statistics is disabled --- .../tests/behat/columnsortorder.feature | 11 +++++++++++ question/classes/local/bank/view.php | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/question/bank/columnsortorder/tests/behat/columnsortorder.feature b/question/bank/columnsortorder/tests/behat/columnsortorder.feature index 82e81ea40b4..39649fd1e3c 100644 --- a/question/bank/columnsortorder/tests/behat/columnsortorder.feature +++ b/question/bank/columnsortorder/tests/behat/columnsortorder.feature @@ -79,3 +79,14 @@ Feature: An plugin column can be reordered and displayed in the question bank vi And I click on "Column sort order" "link" Then I should not see "Currently disabled question bank plugins:" And I should see "checkboxcustomcolumn" + + Scenario: Reordering with disabled columns + When I log in as "admin" + And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration + And I click on "Disable" "link" in the "Question statistics" "table_row" + And I click on "Enable" "link" in the "Question statistics" "table_row" + And I click on "Disable" "link" in the "Question statistics" "table_row" + And I am on the "Course 1" "core_question > course question bank" page + Then I should see "Question bank" + And "Create a new question" "button" should exist + # Really, we are just checking the question bank displayed without errors. diff --git a/question/classes/local/bank/view.php b/question/classes/local/bank/view.php index 722c8a90226..ca056ba9482 100644 --- a/question/classes/local/bank/view.php +++ b/question/classes/local/bank/view.php @@ -300,7 +300,7 @@ class view { } foreach ($plugincolumnobjects as $columnobject) { $columnname = $columnobject->get_column_name(); - foreach ($corequestionbankcolumns as $key => $corequestionbankcolumn) { + foreach ($corequestionbankcolumns as $corequestionbankcolumn) { if (!\core\plugininfo\qbank::is_plugin_enabled($componentname)) { unset($questionbankclasscolumns[$columnname]); continue; @@ -334,7 +334,7 @@ class view { // Mitigate the error in case of any regression. foreach ($questionbankclasscolumns as $shortname => $questionbankclasscolumn) { - if (empty($questionbankclasscolumn)) { + if (!is_object($questionbankclasscolumn)) { unset($questionbankclasscolumns[$shortname]); } }