This commit is contained in:
Shamim Rezaie 2021-11-10 18:35:34 +11:00
commit 201f5034f9
11 changed files with 79 additions and 1531 deletions

View File

@ -69,12 +69,6 @@ define('CALENDAR_TF_24', '%H:%M');
*/
define('CALENDAR_TF_12', '%I:%M %p');
/**
* CALENDAR_EVENT_GLOBAL - Site calendar event types
* @deprecated since 3.8
*/
define('CALENDAR_EVENT_GLOBAL', 1);
/**
* CALENDAR_EVENT_SITE - Site calendar event types
*/

View File

@ -9,6 +9,9 @@ information provided here is intended especially for developers.
* The following functions have been deprecated because they were no longer used:
- calendar_process_subscription_row()
- calendar_import_icalendar_events()
* The following has been removed after being deprecated in 3.8
* CALENDAR_EVENT_GLOBAL
=== 3.10 ===
* The core_calendar\local\event\value_objects\times_interface class now has new method get_usermidnight_time() which

View File

@ -1029,122 +1029,6 @@ class core_enrol_external extends external_api {
);
}
/**
* Returns description of edit_user_enrolment() parameters
*
* @deprecated since 3.8
* @return external_function_parameters
*/
public static function edit_user_enrolment_parameters() {
return new external_function_parameters(
array(
'courseid' => new external_value(PARAM_INT, 'User enrolment ID'),
'ueid' => new external_value(PARAM_INT, 'User enrolment ID'),
'status' => new external_value(PARAM_INT, 'Enrolment status'),
'timestart' => new external_value(PARAM_INT, 'Enrolment start timestamp', VALUE_DEFAULT, 0),
'timeend' => new external_value(PARAM_INT, 'Enrolment end timestamp', VALUE_DEFAULT, 0),
)
);
}
/**
* External function that updates a given user enrolment.
*
* @deprecated since 3.8
* @param int $courseid The course ID.
* @param int $ueid The user enrolment ID.
* @param int $status The enrolment status.
* @param int $timestart Enrolment start timestamp.
* @param int $timeend Enrolment end timestamp.
* @return array An array consisting of the processing result, errors and form output, if available.
*/
public static function edit_user_enrolment($courseid, $ueid, $status, $timestart = 0, $timeend = 0) {
global $CFG, $DB, $PAGE;
$params = self::validate_parameters(self::edit_user_enrolment_parameters(), [
'courseid' => $courseid,
'ueid' => $ueid,
'status' => $status,
'timestart' => $timestart,
'timeend' => $timeend,
]);
$course = get_course($courseid);
$context = context_course::instance($course->id);
self::validate_context($context);
$userenrolment = $DB->get_record('user_enrolments', ['id' => $params['ueid']], '*', MUST_EXIST);
$userenroldata = [
'status' => $params['status'],
'timestart' => $params['timestart'],
'timeend' => $params['timeend'],
];
$result = false;
$errors = [];
// Validate data against the edit user enrolment form.
$instance = $DB->get_record('enrol', ['id' => $userenrolment->enrolid], '*', MUST_EXIST);
$plugin = enrol_get_plugin($instance->enrol);
require_once("$CFG->dirroot/enrol/editenrolment_form.php");
$customformdata = [
'ue' => $userenrolment,
'modal' => true,
'enrolinstancename' => $plugin->get_instance_name($instance)
];
$mform = new \enrol_user_enrolment_form(null, $customformdata, 'post', '', null, true, $userenroldata);
$mform->set_data($userenroldata);
$validationerrors = $mform->validation($userenroldata, null);
if (empty($validationerrors)) {
require_once($CFG->dirroot . '/enrol/locallib.php');
$manager = new course_enrolment_manager($PAGE, $course);
$result = $manager->edit_enrolment($userenrolment, (object)$userenroldata);
} else {
foreach ($validationerrors as $key => $errormessage) {
$errors[] = (object)[
'key' => $key,
'message' => $errormessage
];
}
}
return [
'result' => $result,
'errors' => $errors,
];
}
/**
* Returns description of edit_user_enrolment() result value
*
* @deprecated since 3.8
* @return external_description
*/
public static function edit_user_enrolment_returns() {
return new external_single_structure(
array(
'result' => new external_value(PARAM_BOOL, 'True if the user\'s enrolment was successfully updated'),
'errors' => new external_multiple_structure(
new external_single_structure(
array(
'key' => new external_value(PARAM_TEXT, 'The data that failed the validation'),
'message' => new external_value(PARAM_TEXT, 'The error message'),
)
), 'List of validation errors'
),
)
);
}
/**
* Mark the edit_user_enrolment web service as deprecated.
*
* @return bool
*/
public static function edit_user_enrolment_is_deprecated() {
return true;
}
/**
* Returns description of submit_user_enrolment_form parameters.
*

View File

@ -1093,89 +1093,6 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals($timenow, $expecteduserlist['users'][1]['lastcourseaccess']);
}
/**
* Test for core_enrol_external::edit_user_enrolment().
*/
public function test_edit_user_enrolment() {
global $DB;
$this->resetAfterTest(true);
$datagen = $this->getDataGenerator();
/** @var enrol_manual_plugin $manualplugin */
$manualplugin = enrol_get_plugin('manual');
$this->assertNotNull($manualplugin);
$studentroleid = $DB->get_field('role', 'id', ['shortname' => 'student'], MUST_EXIST);
$teacherroleid = $DB->get_field('role', 'id', ['shortname' => 'editingteacher'], MUST_EXIST);
$course = $datagen->create_course();
$user = $datagen->create_user();
$teacher = $datagen->create_user();
$instanceid = null;
$instances = enrol_get_instances($course->id, true);
foreach ($instances as $inst) {
if ($inst->enrol == 'manual') {
$instanceid = (int)$inst->id;
break;
}
}
if (empty($instanceid)) {
$instanceid = $manualplugin->add_default_instance($course);
if (empty($instanceid)) {
$instanceid = $manualplugin->add_instance($course);
}
}
$this->assertNotNull($instanceid);
$instance = $DB->get_record('enrol', ['id' => $instanceid], '*', MUST_EXIST);
$manualplugin->enrol_user($instance, $user->id, $studentroleid, 0, 0, ENROL_USER_ACTIVE);
$manualplugin->enrol_user($instance, $teacher->id, $teacherroleid, 0, 0, ENROL_USER_ACTIVE);
$ueid = (int)$DB->get_field(
'user_enrolments',
'id',
['enrolid' => $instance->id, 'userid' => $user->id],
MUST_EXIST
);
// Login as teacher.
$this->setUser($teacher);
$now = new DateTime();
$nowtime = $now->getTimestamp();
// Invalid data.
$data = core_enrol_external::edit_user_enrolment($course->id, $ueid, ENROL_USER_ACTIVE, $nowtime, $nowtime);
$data = external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$this->assertFalse($data['result']);
$this->assertNotEmpty($data['errors']);
// Valid data.
$nextmonth = clone($now);
$nextmonth->add(new DateInterval('P1M'));
$nextmonthtime = $nextmonth->getTimestamp();
$data = core_enrol_external::edit_user_enrolment($course->id, $ueid, ENROL_USER_ACTIVE, $nowtime, $nextmonthtime);
$data = external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$this->assertTrue($data['result']);
$this->assertEmpty($data['errors']);
// Check updated user enrolment.
$ue = $DB->get_record('user_enrolments', ['id' => $ueid], '*', MUST_EXIST);
$this->assertEquals(ENROL_USER_ACTIVE, $ue->status);
$this->assertEquals($nowtime, $ue->timestart);
$this->assertEquals($nextmonthtime, $ue->timeend);
// Suspend user.
$data = core_enrol_external::edit_user_enrolment($course->id, $ueid, ENROL_USER_SUSPENDED);
$data = external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$this->assertTrue($data['result']);
$this->assertEmpty($data['errors']);
// Check updated user enrolment.
$ue = $DB->get_record('user_enrolments', ['id' => $ueid], '*', MUST_EXIST);
$this->assertEquals(ENROL_USER_SUSPENDED, $ue->status);
}
/**
* dataProvider for test_submit_user_enrolment_form().
*/

View File

@ -1,6 +1,11 @@
This files describes API changes in /enrol/* - plugins,
information provided here is intended especially for developers.
=== 4.0 ===
* Final deprecation of the following webservice:
* core_enrol_edit_user_enrolment
=== 3.11 ===
* Added onlysuspended option to core_enrol_get_enrolled_users webservice to retrieve only suspended users.

View File

@ -768,15 +768,6 @@ $functions = array(
'capabilities' => 'moodle/course:viewparticipants',
'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE),
),
'core_enrol_edit_user_enrolment' => array(
'classname' => 'core_enrol_external',
'methodname' => 'edit_user_enrolment',
'classpath' => 'enrol/externallib.php',
'description' => '** DEPRECATED ** Please do not call this function any more.
External function that updates a given user enrolment',
'type' => 'write',
'ajax' => true,
),
'core_enrol_submit_user_enrolment_form' => array(
'classname' => 'core_enrol_external',
'methodname' => 'submit_user_enrolment_form',

View File

@ -2757,20 +2757,13 @@ function get_courses_page() {
}
/**
* Returns the models that generated insights in the provided context.
*
* @deprecated since Moodle 3.8 MDL-66091 - please do not use this function any more.
* @todo MDL-65799 This will be deleted in Moodle 4.0
* @see \core_analytics\manager::cached_models_with_insights
* @param \context $context
* @return int[]
* @deprecated since Moodle 3.8
*/
function report_insights_context_insights(\context $context) {
debugging('report_insights_context_insights is deprecated. Please use ' .
'\core_analytics\manager::cached_models_with_insights instead', DEBUG_DEVELOPER);
return \core_analytics\manager::cached_models_with_insights($context);
throw new coding_exception(
'Function report_insights_context_insights() ' .
'has been removed. Please use \core_analytics\manager::cached_models_with_insights instead'
);
}
/**

View File

@ -115,6 +115,7 @@ completely removed from Moodle core too.
* Final deprecation: The following functions along with associated tests have been removed:
- core_grades_external::get_grades
- core_grades_external::get_grade_item
- report_insights_context_insights
* \core\session\manager::init_empty_session() has a new optional parameter $newsid to indicate whether this is a new user session
* New html_table attribute "$responsive" which defaults to true. When set to true, tables created via html_writer::table() will be enclosed
in a .table-responsive div container which will allow the table to be scrolled horizontally with ease, especially when the table is rendered in smaller viewports.

File diff suppressed because it is too large Load Diff

View File

@ -5,6 +5,24 @@ information provided here is intended especially for developers.
* The forum_count_replies() function has been removed from core.
* The mod_forum_get_forum_discussion_posts web service has been removed from core.
* Final deprecations of the following functions:
* forum_make_mail_text
* forum_make_mail_html
* forum_make_mail_post
* forum_cron_minimise_user_record
* forum_cron
* forum_print_discussion
* forum_post_nesting_cache
* forum_should_start_post_nesting
* forum_should_end_post_nesting
* forum_print_post_start
* forum_print_post_end
* forum_print_post
* forum_print_posts_flat
* forum_print_posts_threaded
* forum_print_posts_nested
* forum_print_latest_discussions
* forum_get_user_grades
=== 3.11 ===

View File

@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
$version = 2021110800.00; // YYYYMMDD = weekly release date of this DEV branch.
$version = 2021110800.01; // YYYYMMDD = weekly release date of this DEV branch.
// RR = release increments - 00 in DEV branches.
// .XX = incremental changes.
$release = '4.0dev+ (Build: 20211106)'; // Human-friendly version name