mirror of
https://github.com/moodle/moodle.git
synced 2025-04-22 17:02:03 +02:00
Merge branch 'MDL-79708-main' of https://github.com/ilyatregubov/moodle
This commit is contained in:
commit
f11f30375d
@ -920,5 +920,26 @@ function xmldb_main_upgrade($oldversion) {
|
||||
upgrade_main_savepoint(true, 2023122100.01);
|
||||
}
|
||||
|
||||
if ($oldversion < 2023122100.02) {
|
||||
$sqllike = $DB->sql_like('filtercondition', '?');
|
||||
$params[] = '%includesubcategories%';
|
||||
|
||||
$sql = "SELECT qsr.* FROM {question_set_references} qsr WHERE $sqllike";
|
||||
$results = $DB->get_recordset_sql($sql, $params);
|
||||
foreach ($results as $result) {
|
||||
$filtercondition = json_decode($result->filtercondition);
|
||||
if (isset($filtercondition->filter->category->includesubcategories)) {
|
||||
$filtercondition->filter->category->filteroptions =
|
||||
['includesubcategories' => $filtercondition->filter->category->includesubcategories];
|
||||
unset($filtercondition->filter->category->includesubcategories);
|
||||
$result->filtercondition = json_encode($filtercondition);
|
||||
$DB->update_record('question_set_references', $result);
|
||||
}
|
||||
}
|
||||
$results->close();
|
||||
|
||||
upgrade_main_savepoint(true, 2023122100.02);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
namespace mod_quiz;
|
||||
|
||||
use core_question\question_reference_manager;
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
global $CFG;
|
||||
@ -558,6 +560,12 @@ class quiz_question_restore_test extends \advanced_testcase {
|
||||
$this->assertArrayHasKey('filter', $filterconditions);
|
||||
$this->assertArrayHasKey('category', $filterconditions['filter']);
|
||||
$this->assertArrayHasKey('qtagids', $filterconditions['filter']);
|
||||
$this->assertArrayHasKey('filteroptions', $filterconditions['filter']['category']);
|
||||
$this->assertArrayHasKey('includesubcategories', $filterconditions['filter']['category']['filteroptions']);
|
||||
|
||||
// MDL-79708: Bad filter conversion check.
|
||||
$this->assertArrayNotHasKey('includesubcategories', $filterconditions['filter']['category']);
|
||||
|
||||
$this->assertArrayNotHasKey('questioncategoryid', $filterconditions);
|
||||
$this->assertArrayNotHasKey('tags', $filterconditions);
|
||||
$expectedtags = \core_tag_tag::get_by_name_bulk(1, ['foo', 'bar']);
|
||||
@ -567,6 +575,18 @@ class quiz_question_restore_test extends \advanced_testcase {
|
||||
$this->assertEquals($expectedcategory->id, $filterconditions['filter']['category']['values'][0]);
|
||||
$expectedcat = implode(',', [$expectedcategory->id, $expectedcategory->contextid]);
|
||||
$this->assertEquals($expectedcat, $filterconditions['cat']);
|
||||
|
||||
// MDL-79708: Try to convert already converted filter.
|
||||
$filterconditionsold = $filterconditions;
|
||||
$filterconditions = question_reference_manager::convert_legacy_set_reference_filter_condition($filterconditions);
|
||||
// Check that the filtercondition didn't change.
|
||||
$this->assertEquals($filterconditionsold, $filterconditions);
|
||||
|
||||
// MDL-79708: Try to convert a filter with previously bad conversion.
|
||||
$filterconditions['filter']['category']['includesubcategories'] = 0;
|
||||
unset($filterconditions['filter']['category']['filteroptions']);
|
||||
$filterconditions = question_reference_manager::convert_legacy_set_reference_filter_condition($filterconditions);
|
||||
$this->assertEquals($filterconditionsold, $filterconditions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ class question_reference_manager {
|
||||
$filtercondition['filter']['category'] = [
|
||||
'jointype' => \qbank_managecategories\category_condition::JOINTYPE_DEFAULT,
|
||||
'values' => [$filtercondition['questioncategoryid']],
|
||||
'includesubcategories' => $filtercondition['includingsubcategories'],
|
||||
'filteroptions' => ['includesubcategories' => $filtercondition['includingsubcategories']],
|
||||
];
|
||||
unset($filtercondition['questioncategoryid']);
|
||||
unset($filtercondition['includingsubcategories']);
|
||||
@ -119,6 +119,10 @@ class question_reference_manager {
|
||||
$filtercondition['qpage'] = 0;
|
||||
$filtercondition['qperpage'] = 100;
|
||||
$filtercondition['jointype'] = \core\output\datafilter::JOINTYPE_ALL;
|
||||
} else if (isset($filtercondition['filter']['category']['includesubcategories'])) {
|
||||
$filtercondition['filter']['category']['filteroptions'] =
|
||||
['includesubcategories' => $filtercondition['filter']['category']['includesubcategories']];
|
||||
unset($filtercondition['filter']['category']['includesubcategories']);
|
||||
}
|
||||
return $filtercondition;
|
||||
}
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
$version = 2023122100.01; // YYYYMMDD = weekly release date of this DEV branch.
|
||||
$version = 2023122100.02; // YYYYMMDD = weekly release date of this DEV branch.
|
||||
// RR = release increments - 00 in DEV branches.
|
||||
// .XX = incremental changes.
|
||||
$release = '4.4dev (Build: 20231221)'; // Human-friendly version name
|
||||
|
Loading…
x
Reference in New Issue
Block a user