Merge branch 'MDL-68067' of https://github.com/Chocolate-lightning/moodle
[moodle.git] / enrol / upgrade.txt
blob5bf66904d68e8190dc916ef342442563007a1e1a
1 This files describes API changes in /enrol/* - plugins,
2 information provided here is intended especially for developers.
4 === 4.2 ===
6 * New is_self_enrol_available() function has been created. Similar to can_self_enrol but without checking user capabilities.
7 * External function core_enrol_external::get_users_courses now returns a field called "courseimage" containing a URL pointing to
8   the course image.
10 === 4.0 ===
12 * Final deprecation of the following webservice:
13   * core_enrol_edit_user_enrolment
14 * External function core_enrol_external::get_users_courses now returns the last time a course was modified (timemodified field)
15 * The behat step i_add_enrolment_method_with() has been deprecated. Please use the new method i_add_enrolment_method_for_with()
17 === 3.11 ===
19 * Added onlysuspended option to core_enrol_get_enrolled_users webservice to retrieve only suspended users.
21 === 3.8 ===
23 * Function enrol_manual_plugin::enrol_cohort now return the number of enrolled cohort users.
25 === 3.7 ===
27 * Functions get_potential_users() and search_other_users() now return more information to avoid extra count query:
28   - users: List of user objects returned by the query.
29   - moreusers: True if there are still more users, otherwise is False.
30   - totalusers: Number users matching the search. (This element only exists if the function is called with $returnexactcount param set to true).
31 * enrolledusercount is now optional in the return value of get_users_courses() for performance reasons. This is controlled with the new
32   optional returnusercount parameter (default true).
33 * External function core_enrol_external::get_users_courses now returns a new field "completionusertracked" that indicates if the
34   given user is being tracked for completion.
36 === 3.6 ===
38 * External function core_enrol_external::get_users_courses now return more information to avoid multiple queries to build the
39   user dashboard:
40   - displayname: Course display name for lists.
41   - marker: Course section active marker.
42   - completed: Whether the given user completed the course or not.
43   - lastaccess: Last time the user accessed the course.
44   - overviewfiles: Course overview files.
45   - completionhascriteria: Whether completion criteria is set for the course.
46   - isfavourite: Whether the user marked the course as favourite.
47   - hidden: Whether the user hide the course from the dashboard.
48 * External functions core_enrol_external::get_enrolled_users and core_enrol_external::get_enrolled_users_with_capability now return
49   the last access time for the users in the given course.
51 === 3.5 ===
53 * Default sorting in enrol_get_my_courses(), enrol_get_all_users_courses() and enrol_get_users_courses() now respects
54   the site setting "navsortmycoursessort" and should be consistently used when displaying the courses in the UI.
56 === 3.4 ===
58 * render_course_enrolment_users_table method has been removed from the renderer. The enrolled users page is now
59   combined with the participants page. /enrol/users.php no longer exists.
61 === 3.3 ===
63 * External function core_enrol_external::get_users_courses now return the user progress, start and the end course dates.
65 === 3.2 ===
67 * External function core_enrol_external::get_users_courses now return the category id as an additional optional field.
69 === 3.1 ===
71 * core_enrol_external::get_enrolled_users now supports two additional parameters for ordering: sortby and sortdirection.
72 * Enrolment plugins UI have been consolidated. Plugins can implement use_standard_editing_ui() function
73   and add edit_instance_form() and edit_instance_validation() methods instead of providing their own edit.php and form.
74   They can then rely on the default implementation of get_action_icons and get_course_navigation. In future this will
75   mean they can be called by webservices/user upload tools because they can validate their data.
77 === 3.0 ===
79 * Added new events enrol_instance_created, enrol_instance_updated and
80   enrol_instance_deleted . Always trigger them when changing records in the
81   DB table 'enrol'.
82 * Constant CACHE_COURSE_CONTACTS_TTL was deleted.
83 * External function core_enrol_external::get_enrolled_users now returns only the viewable participants if the course has groups enabled and no groupid is passed.
85 === 2.9 ===
87 * External function core_enrol_external::get_users_courses now returns additional optional fields:
88    - summary: Course summary.
89    - summaryformat: Course summary format.
90    - format: Course format.
91    - showgrades: True if grades are shown, otherwise false.
92    - lang: Forced course language.
93    - enablecompletion: Control or not via completion and activity settings.
95 === 2.8 ===
97 * enrol_plugin::instance_deleteable() is deprecated and has been replaced by enrol_plugin::can_delete_instance()
98 * enrol_plugin::can_hide_show_instance() is a new function to control who can hide/show enrolment instances.
99   Returns true by default but plugins must implement their own logic.
101 === 2.6 ===
103 * Enrolment plugin which supports self enrolment should implement can_self_enrol()
104 * Enrolment plugin should implement get_enrol_info() to expose instance information
105   with webservice or external interface.
106 * Webservice core_enrol_get_enrolled_users_with_capability was incorrectly specifing
107   float as the return type for user id. int is the actual returned type and is now
108   reported as such.
110 === 2.5 ===
112 * plugins may use general enrol/editenrolment.php page to let users edit
113   enrolments manually
114 * new support for grade recovery in enrol_plugin::enrol_user() method
116 === 2.4 ===
118 required changes in code:
119 * use role_get_name() or role_fix_names() if you need any role names, using role.name
120   directly from database is not correct any more
121 * new restore support: ENROL_RESTORE_EXACT, ENROL_RESTORE_NOUSERS
122   and ENROL_RESTORE_CLASS were removed, implement new restore_* plugin methods instead
124 other changes and new features:
125 * course enrolment manager now works with disabled plugins too
126 * new support for protected group membership linked to enrol instance
127 * new support for expiry notifications - see enrol_plugin::send_expiry_notifications() method
130 === 2.2 ===
132 required changes in code:
133 * load_temp_role() is deprecated, use load_temp_course_role() instead, temp role not loaded
134 * remove_temp_role() is deprecated, use remove_temp_course_roles() instead
135 * 'user_unenrol_modified' event was renamed to 'user_enrol_modified'
138 === 2.0 ===
140 required changes in code:
141 * enrolment plugins need to be rewritten to use new API - see inline phpdocs and official plugins