mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 08:22:07 +02:00
MDL-80300 mod_quiz: Integration coding fixups
This commit is contained in:
parent
8bd1242d78
commit
430c63b39e
@ -57,7 +57,7 @@ class edit_override_form extends moodleform {
|
||||
protected $userid;
|
||||
|
||||
/** @var int overrideid, if provided. */
|
||||
protected $overrideid;
|
||||
protected int $overrideid;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
|
@ -25,8 +25,7 @@ namespace mod_quiz\local;
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class override_cache {
|
||||
|
||||
/** @var string invalidation event used to purge data when reset_userdata is called, {@see \cache_helper::purge_by_event()}**/
|
||||
/** @var string invalidation event used to purge data when reset_userdata is called, {@see \cache_helper::purge_by_event()} **/
|
||||
public const INVALIDATION_USERDATARESET = 'userdatareset';
|
||||
|
||||
/**
|
||||
@ -43,7 +42,7 @@ class override_cache {
|
||||
/**
|
||||
* Returns the override cache
|
||||
*
|
||||
* @return cache
|
||||
* @return \cache
|
||||
*/
|
||||
protected function get_cache(): \cache {
|
||||
return \cache::make('mod_quiz', 'overrides');
|
||||
|
@ -31,7 +31,6 @@ use mod_quiz\event\user_override_updated;
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class override_manager {
|
||||
|
||||
/** @var array quiz setting keys that can be overwritten **/
|
||||
private const OVERRIDEABLE_QUIZ_SETTINGS = ['timeopen', 'timeclose', 'timelimit', 'attempts', 'password'];
|
||||
|
||||
@ -87,9 +86,9 @@ class override_manager {
|
||||
$errors = [];
|
||||
|
||||
// Ensure at least one of the overrideable settings is set.
|
||||
$keysthatareset = array_map(function($key) use ($formdata) {
|
||||
$keysthatareset = array_map(function ($key) use ($formdata) {
|
||||
return isset($formdata->$key) && !is_null($formdata->$key);
|
||||
} , self::OVERRIDEABLE_QUIZ_SETTINGS);
|
||||
}, self::OVERRIDEABLE_QUIZ_SETTINGS);
|
||||
|
||||
if (!in_array(true, $keysthatareset)) {
|
||||
$errors['general'][] = new \lang_string('nooverridedata', 'quiz');
|
||||
|
@ -32,7 +32,7 @@ $definitions = [
|
||||
'simplekeys' => true,
|
||||
'datasource' => '\mod_quiz\cache\overrides',
|
||||
'invalidationevents' => [
|
||||
\mod_quiz\local\override_cache::INVALIDATION_USERDATARESET,
|
||||
\mod_quiz\local\override_cache::INVALIDATION_USERDATARESET,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
@ -322,13 +322,16 @@ function quiz_calculate_best_attempt($quiz, $attempts) {
|
||||
* @param bool $log Whether to trigger logs.
|
||||
* @return bool true on success
|
||||
*/
|
||||
#[\core\attribute\deprecated('override_manager::delete_override_by_id', since: '4.4')]
|
||||
function quiz_delete_override($quiz, $overrideid, $log = true) {
|
||||
debugging('quiz_delete_override is deprecated. Please use override_manager::delete_override_by_id instead.', DEBUG_DEVELOPER);
|
||||
\core\deprecation::emit_deprecation_if_present(__FUNCTION__);
|
||||
$quizsettings = quiz_settings::create($quiz->id);
|
||||
$quizsettings->get_override_manager()->delete_overrides_by_id(
|
||||
ids: [$overrideid],
|
||||
shouldlog: $log,
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -339,9 +342,9 @@ function quiz_delete_override($quiz, $overrideid, $log = true) {
|
||||
* @param stdClass $quiz The quiz object.
|
||||
* @param bool $log Whether to trigger logs.
|
||||
*/
|
||||
#[\core\attribute\deprecated('override_manager::delete_all_overrides', since: '4.4')]
|
||||
function quiz_delete_all_overrides($quiz, $log = true) {
|
||||
debugging('quiz_delete_all_overrides is deprecated. Please use override_manager::delete_all_overrides instead.',
|
||||
DEBUG_DEVELOPER);
|
||||
\core\deprecation::emit_deprecation_if_present(__FUNCTION__);
|
||||
$quizsettings = quiz_settings::create($quiz->id);
|
||||
$quizsettings->get_override_manager()->delete_all_overrides(shouldlog: $log);
|
||||
}
|
||||
|
@ -14,9 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
namespace mod_quiz;
|
||||
|
||||
use mod_quiz\local\override_cache;
|
||||
namespace mod_quiz\local;
|
||||
|
||||
/**
|
||||
* Cache manager tests for quiz overrides
|
||||
@ -27,7 +25,6 @@ use mod_quiz\local\override_cache;
|
||||
* @covers \mod_quiz\local\override_cache
|
||||
*/
|
||||
final class override_cache_test extends \advanced_testcase {
|
||||
|
||||
/**
|
||||
* Tests CRUD functions of the override_cache
|
||||
*/
|
||||
@ -37,14 +34,11 @@ final class override_cache_test extends \advanced_testcase {
|
||||
$reflection = new \ReflectionClass($overridecache);
|
||||
|
||||
$getcache = $reflection->getMethod('get_cache');
|
||||
$getcache->setAccessible(true);
|
||||
$cache = $getcache->invoke($overridecache);
|
||||
|
||||
$getuserkey = $reflection->getMethod('get_user_cache_key');
|
||||
$getuserkey->setAccessible(true);
|
||||
|
||||
$getgroupkey = $reflection->getMethod('get_group_cache_key');
|
||||
$getgroupkey->setAccessible(true);
|
||||
|
||||
$dummydata = (object)[
|
||||
'userid' => 1234,
|
||||
@ -79,7 +73,7 @@ final class override_cache_test extends \advanced_testcase {
|
||||
$cache->set($getgroupkey->invoke($overridecache, 456), 'testgroup');
|
||||
|
||||
// Purge it.
|
||||
\cache_helper::purge_by_event(\mod_quiz\local\override_cache::INVALIDATION_USERDATARESET);
|
||||
\cache_helper::purge_by_event(override_cache::INVALIDATION_USERDATARESET);
|
||||
$this->assertEmpty($overridecache->get_cached_user_override(123));
|
||||
$this->assertEmpty($overridecache->get_cached_group_override(456));
|
||||
}
|
@ -14,15 +14,14 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
namespace mod_quiz;
|
||||
namespace mod_quiz\local;
|
||||
|
||||
use mod_quiz\event\group_override_created;
|
||||
use mod_quiz\event\group_override_updated;
|
||||
use mod_quiz\event\user_override_created;
|
||||
use mod_quiz\event\user_override_updated;
|
||||
use mod_quiz\local\override_manager;
|
||||
use mod_quiz\event\user_override_deleted;
|
||||
use mod_quiz\local\override_cache;
|
||||
use mod_quiz\quiz_settings;
|
||||
|
||||
/**
|
||||
* Test for override_manager class
|
||||
@ -33,7 +32,6 @@ use mod_quiz\local\override_cache;
|
||||
* @covers \mod_quiz\local\override_manager
|
||||
*/
|
||||
final class override_manager_test extends \advanced_testcase {
|
||||
|
||||
/** @var array Default quiz settings **/
|
||||
private const TEST_QUIZ_SETTINGS = [
|
||||
'attempts' => 5,
|
||||
@ -305,8 +303,12 @@ final class override_manager_test extends \advanced_testcase {
|
||||
* @param string $expectedeventclass an event class, which is expected to the emitted by upsert
|
||||
* @dataProvider save_and_get_override_provider
|
||||
*/
|
||||
public function test_save_and_get_override(array $existingdata, array $formdata, int $expectedrecordscreated,
|
||||
string $expectedeventclass): void {
|
||||
public function test_save_and_get_override(
|
||||
array $existingdata,
|
||||
array $formdata,
|
||||
int $expectedrecordscreated,
|
||||
string $expectedeventclass
|
||||
): void {
|
||||
global $DB;
|
||||
|
||||
$this->setAdminUser();
|
||||
@ -966,8 +968,11 @@ final class override_manager_test extends \advanced_testcase {
|
||||
* @param \Closure $functionbeingtested is passed the manager and calls the function being tested (usually require_*_capability)
|
||||
* @dataProvider require_read_capability_provider
|
||||
*/
|
||||
public function test_require_read_capability(array $capabilitiestogive, bool $expectedallowed,
|
||||
\Closure $functionbeingtested): void {
|
||||
public function test_require_read_capability(
|
||||
array $capabilitiestogive,
|
||||
bool $expectedallowed,
|
||||
\Closure $functionbeingtested
|
||||
): void {
|
||||
$this->resetAfterTest();
|
||||
[$quizobj] = $this->create_quiz_and_course();
|
||||
$user = $this->getDataGenerator()->create_user();
|
Loading…
x
Reference in New Issue
Block a user