upgrade.txt 11.8 KB
Newer Older
1
2
3
This files describes API changes in /course/*,
information provided here is intended especially for developers.

4
=== 4.0 ===
5
6
7
8
9
10
11
12
13
14
15
* All activity icons have been replaced with black monochrome icons. The background
colour for these icons is defined using a new 'FEATURE_MOD_PURPOSE' support variable in the module lib.php file
Available purpose types are:
  - MOD_PURPOSE_COMMUNICATION
  - MOD_PURPOSE_ASSESSMENT
  - MOD_PURPOSE_COLLABORATION
  - MOD_PURPOSE_CONTENT
  - MOD_PURPOSE_ADMINISTRATION
  - MOD_PURPOSE_INTERFACE
  - MOD_PURPOSE_OTHER
The colours for these types are defined in theme/boost/scss/moodle/variables.scss
16
* The format_base is now deprecated. Use core_courseformat\base instead.
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
* The new course output components deprecate many renderer methods from course
renderer and course format renderer:
  - output\course_format: to render the general course structure
  - output\section_format: to render a section
  - output\cm_format: to render an activity card inside a section
  - output\course_format\*: to render parts of the course structure
  - output\section_format\*: to render parts of the course section
* The previous format renderer page_title method has been moved to course_format::page_title
* New format renderer methods to interact with the new output components:
  - render: override the default templatable mustache location for the new course components.
  - course_section_updated_cm_item: used when the course editor needs to update a cm item HTML.
  - render_course_format: contrib formats should override this method to change the default template.
* The following methods are adapted to use outputs but with a deprecation warning and should not be used anymore:
  - print_single_section_page (replaced by output\course_format)
  - print_multiple_section_page (replaced by output\course_format)
  - course_activity_clipboard (integrated in replaced by output\course_format)
  - format_summary_text (replaced by output\section_format\summay)
  - change_number_sections (replaced by output\course_format\addsection)
  - course_section_cm_list_item (replaced by output\section_format\cmitem)
  - course_section_cm (replaced by output\cm_format)
  - course_section_cm_list (replaced by output\section_format\cmlist)
  - section_edit_control_menu (replaced by output\section_format\controlmenu)
  - section_right_content (integrated in output\section_format)
  - section_left_content (integrated in output\section_format)
  - section_header (replaced by output\section_format\header)
  - section_footer (integrated in output\section_format)
  - section_edit_control_items (replaced by output\section_format\controlmenu)
  - section_summary (replaced by output\section_format\summary)
  - section_activity_summary (replaced by output\section_format\cmsummary)
  - section_availability_message (integrated in output\section_format\availability)
  - section_availability (replaced by output\section_format\availability)
  - get_nav_links (replaced by output\course_format\sectionnavigation)
  - stealth_section_header (replaced by output\section_format\header)
  - stealth_section_footer (integrated in by output\section_format)
  - section_nav_selection (replaced by output\course_format\sectionselector)
52
53
54
55
56
57
58
  - course_section_cm_edit_actions (replaced by core_courseformat\output\local\content\cm\\controlmenu)
  - is_cm_conditionally_hidden (incorporated in core_availability\info_module::is_available_for_all)
  - course_section_cm_name (replaced by core_courseformat\output\local\content\cm\\cmname)
  - course_section_cm_classes (integrated in core_courseformat\output\local\content\cm)
  - course_section_cm_name_title (replaced by core_courseformat\\output\\local\\cm\\title)
  - course_section_cm_text (integrated in core_courseformat\\output\\local\\content\\cm)
  - course_section_cm_availability (replaced by core_courseformat\\output\\local\\content\\cm\\availability))
59
60
61
62
* The following abstract methods are deleted:
  - start_section_list (integrated in output\course_format)
  - end_section_list (integrated in output\course_format)
  - page_title (moved to output\course_format)
63
64
65
* Course formats should have a renderer (until now it was only highly recommended but not mandatory). For backwards
compatibility (to not break third-party plugins without it), legacy_format_renderer has been created and will be used when
course formats don't have their own renderer.
66
67
* New external core_courseformat\external\get_state returns current state information for a given course.
* New external core_courseformat\external\update_course runs given action to edit course and gets the affectated state objects.
68
* New external core_course\external\get_state returns current state information for a given course.
69
* New external function core_course_update_course runs given action to edit course status.
70
71
* The `\core\event\course_category_deleted` event is now created with a snapshot of the category record being deleted,
  available inside event observers via `$event->get_record_snapshot`
72
73
* New include_course_editor() function to include and configure course editor modules.
* New core_course_drawer() function to render the message drawer in the top of the body of each page.
74
75
* New course_get_enrolled_courses_for_logged_in_user_from_search which hooks in with external\get_enrolled_courses_by_timeline_classification
  given COURSE_TIMELINE_SEARCH is set then get_enrolled_courses_by_timeline_classification will deviate to use a string search of enrolled courses.
76
* Class core_course\output\course_module_name is deprecated. Now core_courseformat\output\local\cm\cmname controls inline edit.
77
78
79
* Calendar menu entry is now moved to User menu items, so the following methods will not return the calendar item anymore:
  - course_get_user_navigation_options
  - core_course_externalcore_course_external::get_user_navigation_options
80

81
82
=== 3.11 ===
* A new callback xxx_coursemodule_definition_after_data that allows plugins to extend activity forms after the data is set.
83
84
* \core_course_renderer::course_section_cm_completion() has been deprecated. It is not being used anymore and is being replaced by
  \core_renderer::activity_information().
85
86
87
88
89
90
91
* New Behat steps for checking activity date information in the \behat_course class:
  - activity_date_in_activity_should_contain_text()
    - Given the activity date in "<ActivityName>" should contain "<Text>"
  - activity_dates_information_in_activity_should_exist()
    - Given the activity date information in "<ActivityName>" should exist
  - activity_dates_information_in_activity_should_not_exist()
    - Given the activity date information in "<ActivityName>" should not exist
92
* 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.
93

94
=== 3.10 ===
95
96

* The function make_categories_options() has now been deprecated. Please use \core_course_category::make_categories_list() instead.
97
* External function core_course_external::get_course_contents now returns a new field contextid with the module context id.
98
99
* The core_course_external class methods get_courses(), get_courses_by_field() and search_courses() now return a "valueraw" property
  for each custom course field, which contains the original/unformatted version of the custom field value.
100

101
102
103
=== 3.9 ===

* The function get_module_metadata is now deprecated. Please use \core_course\local\service\content_item_service instead.
104
* Activity module names are now PARAM_ALPHANUM instead of PARAM_ALPHA so integers can be used in activity module names
105
106
107
108
109
110
111
112
113
* The following functions have been added to core_course_renderer class to have more granularity. They can be overriden in
  extending classes:
  - course_name
  - course_enrolment_icons
  - course_summary
  - course_contacts
  - course_overview_files
  - course_category_name
  - course_custom_fields
114

115
=== 3.8 ===
116

117
118
* The following functions have been finally deprecated and can not be used any more:
  - core_course_external::get_activities_overview
119
120
121
* External function core_course_external::get_enrolled_courses_by_timeline_classification now also supports the classification
  'allincludinghidden' which delivers all courses including hidden courses. The classification 'all' still returns all courses
  without hidden courses.
122

123
=== 3.7 ===
124

125
126
 * The course pattern function in course_summary_exporter::get_course_pattern has been moved to $OUTPUT->get_generated_image_for_id.
 * The course color function in course_summary_exporter::coursecolor has been moved to $OUTPUT->get_generated_color_for_id.
127
128
 * External function core_course_external::get_course_contents new returns the following additional completiondata field:
   - valueused (indicates whether the completion state affects the availability of other content)
129
 * External function core_course_external::get_course_contents now returns a new contentsinfo field with summary files information.
130
131
 * External function core_course_external::get_course_contents now returns an additional field "tags" returning the content tags.

132
133
=== 3.6 ===

134
 * External function core_course_external::get_course_public_information now returns the roles and the primary role of course
135
   contacts.
136
137
138
139
 * External function core_course_external::get_course_contents now return the following additional file fields:
   - onclick (onclick javascript action code)
   - afterlink (after link info to be displayed)
   - customdata (module custom data (JSON encoded))
140
141
   - completion (to indicate if completion is enabled or not)
   - completiondata (completion status for the current user in the module)
142
 * External function core_group_external::get_course_user_groups now can return all user courses group information.
143

144
=== 3.5 ===
145

146
 * There is a new capability 'moodle/course:setforcedlanguage' to control which users can force the course
147
   language; create_course and update_course functions delegate access control to the caller code; if you
148
   are calling those functions you may be interested in checking if the logged in user has 'moodle/course:setforcedlanguage' capability.
149

150
151
152
=== 3.3 ===

 * External function core_course_external::get_courses_by_field now returns the course filters list and status.
153
 * External function core_course_external::get_courses_by_field now returns the end date of the course.
154
155
156
157
158
 * External function core_course_external::get_course_contents now return the following additional file fields:
   - mimetype (the file mime type)
   - isexternalfile (if is a file reference to a external repository)
   - repositorytype (the repository name in case is a external file)
   Those fields are VALUE_OPTIONAL for backwards compatibility.
159
160
161
 * External function core_course_external::get_course_contents now return the following fields for section and modules:
   - uservisible (whether the section or module is visible by the user)
   - availabilityinfo (availability information if the course or module has any access restriction set
162

163
164
165
=== 3.2 ===

 * External function core_course_external::get_course_contents now returns the section's number in the course (new section field).
166
 * External function core_course_external::get_course_contents now returns if a section is hidden in the course format.
167
168
169
 * External functions that were returning file information now return the following file fields:
   filename, filepath, mimetype, filesize, timemodified and fileurl.
   Those fields are now marked as VALUE_OPTIONAL for backwards compatibility.
170
171
172
173
174
175
 * The modchooser now uses a renderable and a template, thus its associated renderer
   methods have been deprecated. Note that the call to core_course_render::course_modchooser,
   is still required. Deprecated methods:
   - core_course_renderer::course_modchooser_module_types
   - core_course_renderer::course_modchooser_module
   - core_course_renderer::course_modchooser_title
176
177
 * You can now specify a course end date when calling core_course_external::create_courses and core_course_external::update_courses
   external functions. core_course_external::get_courses external function is now returning courses end date values.