mirror of
https://github.com/moodle/moodle.git
synced 2025-03-24 17:40:26 +01:00
Merge branch 'MDL-65799' of https://github.com/Chocolate-lightning/moodle
This commit is contained in:
commit
201f5034f9
@ -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
|
||||
*/
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -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().
|
||||
*/
|
||||
|
@ -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.
|
||||
|
@ -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',
|
||||
|
@ -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'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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
@ -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 ===
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user