MDL-72094 report_log: Modify the styling of the selector form elements
[moodle.git] / course / upgrade.txt
blob8dacee9845c4cc2708b08b39683bb1c806e4de35
1 This files describes API changes in /course/*,
2 information provided here is intended especially for developers.
4 === 4.0 ===
6 * The format_base is now deprecated. Use core_courseformat\base instead.
7 * The new course output components deprecate many renderer methods from course
8 renderer and course format renderer:
9   - output\course_format: to render the general course structure
10   - output\section_format: to render a section
11   - output\cm_format: to render an activity card inside a section
12   - output\course_format\*: to render parts of the course structure
13   - output\section_format\*: to render parts of the course section
14 * The previous format renderer page_title method has been moved to course_format::page_title
15 * New format renderer methods to interact with the new output components:
16   - render: override the default templatable mustache location for the new course components.
17   - course_section_updated_cm_item: used when the course editor needs to update a cm item HTML.
18   - render_course_format: contrib formats should override this method to change the default template.
19 * The following methods are adapted to use outputs but with a deprecation warning and should not be used anymore:
20   - print_single_section_page (replaced by output\course_format)
21   - print_multiple_section_page (replaced by output\course_format)
22   - course_activity_clipboard (integrated in replaced by output\course_format)
23   - format_summary_text (replaced by output\section_format\summay)
24   - change_number_sections (replaced by output\course_format\addsection)
25   - course_section_cm_list_item (replaced by output\section_format\cmitem)
26   - course_section_cm (replaced by output\cm_format)
27   - course_section_cm_list (replaced by output\section_format\cmlist)
28   - section_edit_control_menu (replaced by output\section_format\controlmenu)
29   - section_right_content (integrated in output\section_format)
30   - section_left_content (integrated in output\section_format)
31   - section_header (replaced by output\section_format\header)
32   - section_footer (integrated in output\section_format)
33   - section_edit_control_items (replaced by output\section_format\controlmenu)
34   - section_summary (replaced by output\section_format\summary)
35   - section_activity_summary (replaced by output\section_format\cmsummary)
36   - section_availability_message (integrated in output\section_format\availability)
37   - section_availability (replaced by output\section_format\availability)
38   - get_nav_links (replaced by output\course_format\sectionnavigation)
39   - stealth_section_header (replaced by output\section_format\header)
40   - stealth_section_footer (integrated in by output\section_format)
41   - section_nav_selection (replaced by output\course_format\sectionselector)
42 * The following abstract methods are deleted:
43   - start_section_list (integrated in output\course_format)
44   - end_section_list (integrated in output\course_format)
45   - page_title (moved to output\course_format)
46 * Course formats should have a renderer (until now it was only highly recommended but not mandatory). For backwards
47 compatibility (to not break third-party plugins without it), legacy_format_renderer has been created and will be used when
48 course formats don't have their own renderer.
49 * New external core_courseformat\external\get_state returns current state information for a given course.
50 * New external core_courseformat\external\update_course runs given action to edit course and gets the affectated state objects.
51 * New external core_course\external\get_state returns current state information for a given course.
52 * New external function core_course_update_course runs given action to edit course status.
53 * The `\core\event\course_category_deleted` event is now created with a snapshot of the category record being deleted,
54   available inside event observers via `$event->get_record_snapshot`
55 * New include_course_editor() function to include and configure course editor modules.
56 * New core_course_drawer() function to render the message drawer in the top of the body of each page.
57 * New course_get_enrolled_courses_for_logged_in_user_from_search which hooks in with external\get_enrolled_courses_by_timeline_classification
58   given COURSE_TIMELINE_SEARCH is set then get_enrolled_courses_by_timeline_classification will deviate to use a string search of enrolled courses.
60 === 3.11 ===
61 * A new callback xxx_coursemodule_definition_after_data that allows plugins to extend activity forms after the data is set.
62 * \core_course_renderer::course_section_cm_completion() has been deprecated. It is not being used anymore and is being replaced by
63   \core_renderer::activity_information().
64 * New Behat steps for checking activity date information in the \behat_course class:
65   - activity_date_in_activity_should_contain_text()
66     - Given the activity date in "<ActivityName>" should contain "<Text>"
67   - activity_dates_information_in_activity_should_exist()
68     - Given the activity date information in "<ActivityName>" should exist
69   - activity_dates_information_in_activity_should_not_exist()
70     - Given the activity date information in "<ActivityName>" should not exist
71 * A user preference usemodchooser has been removed and the activities/resources (non-ajax) activity chooser has been deprecated and will be removed in the future.
73 === 3.10 ===
75 * The function make_categories_options() has now been deprecated. Please use \core_course_category::make_categories_list() instead.
76 * External function core_course_external::get_course_contents now returns a new field contextid with the module context id.
77 * The core_course_external class methods get_courses(), get_courses_by_field() and search_courses() now return a "valueraw" property
78   for each custom course field, which contains the original/unformatted version of the custom field value.
80 === 3.9 ===
82 * The function get_module_metadata is now deprecated. Please use \core_course\local\service\content_item_service instead.
83 * Activity module names are now PARAM_ALPHANUM instead of PARAM_ALPHA so integers can be used in activity module names
84 * The following functions have been added to core_course_renderer class to have more granularity. They can be overriden in
85   extending classes:
86   - course_name
87   - course_enrolment_icons
88   - course_summary
89   - course_contacts
90   - course_overview_files
91   - course_category_name
92   - course_custom_fields
94 === 3.8 ===
96 * The following functions have been finally deprecated and can not be used any more:
97   - core_course_external::get_activities_overview
98 * External function core_course_external::get_enrolled_courses_by_timeline_classification now also supports the classification
99   'allincludinghidden' which delivers all courses including hidden courses. The classification 'all' still returns all courses
100   without hidden courses.
102 === 3.7 ===
104  * The course pattern function in course_summary_exporter::get_course_pattern has been moved to $OUTPUT->get_generated_image_for_id.
105  * The course color function in course_summary_exporter::coursecolor has been moved to $OUTPUT->get_generated_color_for_id.
106  * External function core_course_external::get_course_contents new returns the following additional completiondata field:
107    - valueused (indicates whether the completion state affects the availability of other content)
108  * External function core_course_external::get_course_contents now returns a new contentsinfo field with summary files information.
109  * External function core_course_external::get_course_contents now returns an additional field "tags" returning the content tags.
111 === 3.6 ===
113  * External function core_course_external::get_course_public_information now returns the roles and the primary role of course
114    contacts.
115  * External function core_course_external::get_course_contents now return the following additional file fields:
116    - onclick (onclick javascript action code)
117    - afterlink (after link info to be displayed)
118    - customdata (module custom data (JSON encoded))
119    - completion (to indicate if completion is enabled or not)
120    - completiondata (completion status for the current user in the module)
121  * External function core_group_external::get_course_user_groups now can return all user courses group information.
123 === 3.5 ===
125  * There is a new capability 'moodle/course:setforcedlanguage' to control which users can force the course
126    language; create_course and update_course functions delegate access control to the caller code; if you
127    are calling those functions you may be interested in checking if the logged in user has 'moodle/course:setforcedlanguage' capability.
129 === 3.3 ===
131  * External function core_course_external::get_courses_by_field now returns the course filters list and status.
132  * External function core_course_external::get_courses_by_field now returns the end date of the course.
133  * External function core_course_external::get_course_contents now return the following additional file fields:
134    - mimetype (the file mime type)
135    - isexternalfile (if is a file reference to a external repository)
136    - repositorytype (the repository name in case is a external file)
137    Those fields are VALUE_OPTIONAL for backwards compatibility.
138  * External function core_course_external::get_course_contents now return the following fields for section and modules:
139    - uservisible (whether the section or module is visible by the user)
140    - availabilityinfo (availability information if the course or module has any access restriction set
142 === 3.2 ===
144  * External function core_course_external::get_course_contents now returns the section's number in the course (new section field).
145  * External function core_course_external::get_course_contents now returns if a section is hidden in the course format.
146  * External functions that were returning file information now return the following file fields:
147    filename, filepath, mimetype, filesize, timemodified and fileurl.
148    Those fields are now marked as VALUE_OPTIONAL for backwards compatibility.
149  * The modchooser now uses a renderable and a template, thus its associated renderer
150    methods have been deprecated. Note that the call to core_course_render::course_modchooser,
151    is still required. Deprecated methods:
152    - core_course_renderer::course_modchooser_module_types
153    - core_course_renderer::course_modchooser_module
154    - core_course_renderer::course_modchooser_title
155  * You can now specify a course end date when calling core_course_external::create_courses and core_course_external::update_courses
156    external functions. core_course_external::get_courses external function is now returning courses end date values.