Merge branch 'MDL-63167-master' of git://github.com/peterRd/moodle

This commit is contained in:
Jake Dallimore 2020-07-01 17:06:01 +08:00
commit 2cde5c5267
5 changed files with 10 additions and 239 deletions

View File

@ -53,48 +53,4 @@ trait gradingform_legacy_polyfill {
public static function delete_gradingform_for_instances(array $instanceids) {
static::_delete_gradingform_for_instances($instanceids);
}
/**
* This method is used to export any user data this sub-plugin has using the object to get the context and userid.
*
* @deprecated Since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface.
* @todo MDL-63167 remove this method.
*
* @param context $context Context owner of the data.
* @param stdClass $definition Grading definition entry to export.
* @param int $userid The user whose information is to be exported.
*
* @return stdClass The data to export.
*/
public static function get_gradingform_export_data(\context $context, $definition, int $userid) {
debugging('This method is deprecated. Please use the gradingform_provider_v2 interface', DEBUG_DEVELOPER);
return static::_get_gradingform_export_data($context, $definition, $userid);
}
/**
* Any call to this method should delete all user data for the context defined.
*
* @deprecated Since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface.
* @todo MDL-63167 remove this method.
*
* @param context $context Context owner of the data.
*/
public static function delete_gradingform_for_context(\context $context) {
debugging('This method is deprecated. Please use the gradingform_provider_v2 interface', DEBUG_DEVELOPER);
static::_delete_gradingform_for_context($context);
}
/**
* A call to this method should delete user data (where practicle) from the userid and context.
*
* @deprecated Since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface.
* @todo MDL-63167 remove this method.
*
* @param int $userid The user whose information is to be deleted.
* @param context $context Context owner of the data.
*/
public static function delete_gradingform_for_userid(int $userid, \context $context) {
debugging('This method is deprecated. Please use the gradingform_provider_v2 interface', DEBUG_DEVELOPER);
static::_delete_gradingform_for_userid($userid, $context);
}
}

View File

@ -1,74 +0,0 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* This file contains the grading method interface.
*
* Grading method plugins should implement this if they store personal information.
*
* @deprecated since Moodle 3.6 MDL-62535 Please use the gradingform_provider_v2 interface
* @todo MDL-63167 Remove this file.
*
* @package core_grading
* @copyright 2018 Sara Arjona <sara@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_grading\privacy;
defined('MOODLE_INTERNAL') || die();
use core_privacy\local\request\approved_contextlist;
interface gradingform_provider extends
\core_privacy\local\request\plugin\subsystem_provider,
\core_privacy\local\deprecated {
/**
* This method is used to export any user data this sub-plugin has using the object to get the context and userid.
*
* @deprecated since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface
* @todo MDL-63167 Remove this file.
*
* @param \context $context Context owner of the data.
* @param \stdClass $definition Grading definition entry to export.
* @param int $userid The user whose information is to be exported.
*
* @return \stdClass The data to export.
*/
public static function get_gradingform_export_data(\context $context, $definition, int $userid);
/**
* Any call to this method should delete all user data for the context defined.
*
* @deprecated since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface
* @todo MDL-63167 Remove this file.
*
* @param \context $context Context owner of the data.
*/
public static function delete_gradingform_for_context(\context $context);
/**
* A call to this method should delete user data (where practicle) from the userid and context.
*
* @deprecated since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface
* @todo MDL-63167 Remove this file.
*
* @param int $userid The user to delete.
* @param \context $context the context to refine the deletion.
*/
public static function delete_gradingform_for_userid(int $userid, \context $context);
}

View File

@ -304,19 +304,6 @@ class provider implements
$tmpdata['timecopied'] = transform::datetime($definition->timecopied);
}
// MDL-63167 - This section is to be removed with the final deprecation of the gradingform_provider interface.
// Export gradingform information (if needed).
$instancedata = manager::component_class_callback(
"gradingform_{$definition->method}",
gradingform_provider::class,
'get_gradingform_export_data',
[$context, $definition, $userid]
);
if (null !== $instancedata) {
$tmpdata = array_merge($tmpdata, $instancedata);
}
// End of section to be removed with deprecation.
$defdata[] = (object) $tmpdata;
// Export grading_instances information.
@ -378,14 +365,7 @@ class provider implements
* @param \context $context the context to delete in.
*/
public static function delete_data_for_all_users_in_context(\context $context) {
// MDL-63167 - This section is to be removed with the final deprecation of the gradingform_provider interface.
manager::plugintype_class_callback(
'gradingform',
gradingform_provider::class,
'delete_gradingform_for_context',
[$context]
);
// End of section to be removed for final deprecation.
// The only information left to be deleted here is the grading definitions. Currently we are not deleting these.
}
/**
@ -395,14 +375,7 @@ class provider implements
* @param approved_contextlist $contextlist a list of contexts approved for deletion.
*/
public static function delete_data_for_user(approved_contextlist $contextlist) {
// MDL-63167 - This section is to be removed with the final deprecation of the gradingform_provider interface.
manager::plugintype_class_callback(
'gradingform',
gradingform_provider::class,
'delete_gradingform_for_userid',
[$contextlist]
);
// End of section to be removed for final deprecation.
// The only information left to be deleted here is the grading definitions. Currently we are not deleting these.
}
/**

View File

@ -1,6 +1,14 @@
This files describes API changes in /grade/grading/form/* - Advanced grading methods
information provided here is intended especially for developers.
=== 4.0 ===
* Removed gradingform_provider.
* Removed the following deprecated functions:
get_gradingform_export_data
delete_gradingform_for_context
delete_gradingform_for_userid
=== 3.6 ===
* The privacy interface gradingform_provider has been deprecated. Please use

View File

@ -69,56 +69,6 @@ class gradeform_privacy_legacy_polyfill_test extends advanced_testcase {
test_legacy_polyfill_gradingform_provider::$mock = $mock;
test_legacy_polyfill_gradingform_provider::delete_gradingform_for_instances([3, 17]);
}
/**
* Test the __get_gradingform_export_data shim.
*/
public function test_get_gradingform_export_data() {
$userid = 476;
$context = context_system::instance();
$mock = $this->createMock(test_gradingform_legacy_polyfill_mock_wrapper::class);
$mock->expects($this->once())
->method('get_return_value')
->with('_get_gradingform_export_data', [$context, (object)[], $userid]);
test_legacy_polyfill_gradingform_provider::$mock = $mock;
test_legacy_polyfill_gradingform_provider::get_gradingform_export_data($context, (object)[], $userid);
$this->assertDebuggingCalled();
}
/**
* Test the _delete_gradingform_for_context shim.
*/
public function test_delete_gradingform_for_context() {
$context = context_system::instance();
$mock = $this->createMock(test_gradingform_legacy_polyfill_mock_wrapper::class);
$mock->expects($this->once())
->method('get_return_value')
->with('_delete_gradingform_for_context', [$context]);
test_legacy_polyfill_gradingform_provider::$mock = $mock;
test_legacy_polyfill_gradingform_provider::delete_gradingform_for_context($context);
$this->assertDebuggingCalled();
}
/**
* Test the _delete_gradingform_for_userid shim.
*/
public function test_delete_gradingform_for_user() {
$userid = 696;
$context = \context_system::instance();
$mock = $this->createMock(test_gradingform_legacy_polyfill_mock_wrapper::class);
$mock->expects($this->once())
->method('get_return_value')
->with('_delete_gradingform_for_userid', [$userid, $context]);
test_legacy_polyfill_gradingform_provider::$mock = $mock;
test_legacy_polyfill_gradingform_provider::delete_gradingform_for_userid($userid, $context);
$this->assertDebuggingCalled();
}
}
/**
@ -129,7 +79,6 @@ class gradeform_privacy_legacy_polyfill_test extends advanced_testcase {
*/
class test_legacy_polyfill_gradingform_provider implements
\core_privacy\local\metadata\provider,
\core_grading\privacy\gradingform_provider,
\core_grading\privacy\gradingform_provider_v2 {
use \core_grading\privacy\gradingform_legacy_polyfill;
@ -169,47 +118,6 @@ class test_legacy_polyfill_gradingform_provider implements
protected static function _get_metadata(\core_privacy\local\metadata\collection $collection) {
return $collection;
}
/**
* This method is used to export any user data this sub-plugin has using the object to get the context and userid.
*
* @deprecated Since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface.
* @todo MDL-63167 remove this method.
*
* @param context $context Context owner of the data.
* @param stdClass $definition Grading definition entry to export.
* @param int $userid The user whose information is to be exported.
*
* @return stdClass The data to export.
*/
protected static function _get_gradingform_export_data(\context $context, $definition, int $userid) {
static::$mock->get_return_value(__FUNCTION__, func_get_args());
}
/**
* Any call to this method should delete all user data for the context defined.
*
* @deprecated Since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface.
* @todo MDL-63167 remove this method.
*
* @param context $context Context owner of the data.
*/
protected static function _delete_gradingform_for_context(\context $context) {
static::$mock->get_return_value(__FUNCTION__, func_get_args());
}
/**
* A call to this method should delete user data (where practicle) from the userid and context.
*
* @deprecated Since Moodle 3.6 MDL-62535 Please use the methods in the gradingform_provider_v2 interface.
* @todo MDL-63167 remove this method.
*
* @param int $userid The user whose information is to be deleted.
* @param context $context Context owner of the data.
*/
protected static function _delete_gradingform_for_userid(int $userid, \context $context) {
static::$mock->get_return_value(__FUNCTION__, func_get_args());
}
}
/**