Hello everyone,
The following versions of Totara Learn have now been released:
These versions do contain security fixes, and for this reason we strongly recommend upgrade.
Each release also includes bug fixes and improvements.
A big thanks to the following people for their contributions to this release:
- Derek Henderson at Remote-Learner - TL-22097
Release Evergreen (30th December 2019):
Key: + Evergreen only Important: TL-22800 Reworked the appraisal role assignment process to prevent duplicate assignments 1) This patch adds a new index to the appraisal_user_assignment table – a unique index on an appraisal ID/appraisee ID combination. It is possible that a site's appraisal_user_assignment table already has duplicates; in this case, the site upgrade will fail. Therefore before doing this upgrade, back up the site and then run this SQL query: SELECT userid, appraisalid, count(appraisalid) as duplicates FROM mdl_appraisal_user_assignment GROUP BY appraisalid, userid HAVING count(appraisalid) > 1 If this query returns a result, it means that the table has duplicates, and they must be resolved first before an upgrade can successfully run. For help, get in touch with the Totara support team and indicate the site has been affected by TL-22800. 2) The behaviour has changed when the 'Update now' button is pressed in the appraisal assignment tab. This is only for dynamic appraisals and the button appears when appraisal assignments are added/removed after activation. Previously when the button was pressed, the assignments were updated in real time and the user would wait until the operation completed. The refreshed screen would then show the updated list of appraisees. With this patch, pressing the button spawns an ad hoc task instead and the refreshed screen does not show the updated list of appraisees. Only when the ad hoc task runs (depending on the next cron run – usually in the next minute) are the assignments updated. When the user revisits the appraisal assignment page, it will show the updated list of appraisees. Security issues: TL-21671 Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues Improvements: TL-19291 Disabled the MathJax filter plugin for fresh installations The MathJax library is being fetched through the official content distribution network. While it is a secure way of distributing the library, this introduces some extra security risks that are unnecessary if the library is not being used. Therefore it is recommended to disable the plugin if formulas are not used in the editor anywhere on the site. TL-22097 Added support for redirection to originally-requested page when users are required to add missing profile information TL-22118 Removed support for obsolete counted recordsets SQL_CALC_FOUND_ROWS and FOUND_ROWS() were deprecated as of MySQL 8.0.17. Both were used by the get_counted_recordset() function, which is now marked as deprecated and all usages have been modified to use alternatives. TL-22598 Improved 'Course visibility' selector help text TL-22837 Added setting to allow Solr search engine-defined default search fields to be used instead of those sent by Totara TL-22979 Added screen reader text stating which filters are in use when using the Grid catalogue TL-22982 Improved button signification when using a screen reader on the Grid catalogue The 'share', 'list view' and 'grid view' buttons are now correctly signified as buttons when using screen reader on the Grid catalogue. TL-23053 + Improved user assignment search for appraisals Previously, the user search for appraisal assignments, 360 feedback and report builder global restrictions did not find expected results for some search terms, e.g. when typing first name and last name of a user. This has been improved by switching to a better keyword parsing method. TL-23169 Fixed an editor width issue when modifying database activity templates TL-23261 Improved the error message when a user without managers cannot be added to a wait-listed event Please note that a user without managers cannot be added to a wait-listed event if the seminar requires manager approval. TL-23265 Introduced an environment check for Totara 12 and below to prevent installation and upgrade if PHP 7.4 is being used TL-23280 + Improved the handling of record-sets in HR Import Made sure that database record-sets are closed properly in HR Import hierarchy.element.class.php TL-23328 Improved the parsing of dates for custom profile fields obtained from LDAP servers Previously the supported format of dates in LDAP servers was limited to unix timestamps, this change adds parsing of multiple date formats supported by PHP DateTime class. Bug fixes: TL-19293 Replaced parsing of members in course groups using JavaScript eval function with JSON.parse TL-20745 Ensured that due dates are not changed on user reassignment of expired certifications TL-22062 + Allow more relevant access to goal names in the 'Goal status' report Previously, the 'Goal name' column had been changed to only appear when the user had the 'totara/hierarchy:viewallgoals' capability due to data privacy and protection concerns for user reports created by the report source. This resulted in learners being unable to see their own company goals in the embedded or user reports. Similarly, managers could not see their team's goals in the report unless they had this broad capability. Now, the 'Goal name' column is shown (using a new Report Builder display class) if the viewer has any of the following: * the capability 'totara/hierarchy:viewallgoals' * the goal is their own and they have the 'totara/hierarchy:viewownpersonalgoal' capability * the goal belongs to someone the viewer manages and they have 'totara/hierarchy:viewstaffpersonalgoal' capability. TL-22914 Ensured MS Word-type document files display the correct flex icon TL-22945 Removed "Home", "Find Learning" and "Log in" menu items from the site policy page when users are not logged in This includes a fix for site policies set up to use the 'multi-language content' filter. Previously if a user changed languages on the site policy page it would still display the 'en' content, now it displays the correct content for the selected language when possible. TL-22952 Fixed a bug so that the 'session_deleted' event will always be triggered after deleting a seminar event TL-23047 Fixed SQL server version detection to work around problems with legacy database compatibility levels TL-23048 Fixed a bug causing a 'duplicate key value violates unique constraint' error when swapping dates between seminar sessions TL-23070 Fixed the certification active period translation in the Grid catalogue Previously, the duration of the certification active period was displayed as a hard-coded English-language string in the catalogue. It is now converted to a language string. TL-23120 + Fixed a bug that sent a booking confirmation when the attendance state was set to 'not set' on the taking attendance page TL-23162 Fixed JavaScript error when loading a page with no results in Grid catalogue TL-23225 + Adjusted popover's z-index to display in the correct stack order This will require CSS to be regenerated for themes that use LESS inheritance. TL-23234 + Fixed profiling runs table being hidden from view TL-23236 Prevented the resetting of course format 'Number of sections' values during course upload update Previously when updating a course through course upload update, the 'Number of sections' of course format (say "topics" or "weeks") was reset with the default value (under some conditions). If the actual number of sections exceeded the default value, some activities were affected by being moved to the Orphaned section of the course. This fix ensures that the 'Number of sections' value is not reset. TL-23237 Fixed an issue where incorrect links were generated for certificate downloads Previously the list of certificate files used to generate the links included directories, and when generating the links the filenames were overridden with the next one in the list. Due to the sort order of some databases this could result in the filename in the link being replaced by the full-stop representing the directory. TL-23260 Fixed an issue with iCalendar attachments (ical) that could prevent seminar booking confirmation emails sending when 'One message per date' is enabled TL-23281 Fixed attendee bookings when manager reservation expires Previously when a manager reservation expired, users who were not on the wait-list were given priority to sign up over the wait-listed users. This patch has fixed the issue, so that when a manager reservation expires, the wait listed users are automatically added as attendees. TL-23291 Glossary auto-linking filter now works correctly in the Grid catalogue TL-23293 Fixed the enrol users modal to always appear above all other content on the page TL-23311 Reworked gradebook purging in course archiving Manual grades as well as grade overrides are now consistently purged when course completion is archived during certification reset or manual course archiving. TL-23313 Fixed typos in various language strings in the English language pack TL-23344 Fixed 'Booked by' column displaying 'Reserved' for self-booked users instead of their name TL-23345 Fixed the capitalisation of tag names displayed in the grid catalogue filter When configuring the Grid catalogue to use tags as a filter, the tag names would always be displayed in lowercase, regardless of the case used when creating them. The display case now reflects exactly what was entered by the user when the tag was created. API changes: TL-23143 Mustache autoloader no longer repetitively registers shutdown handlers TL-23144 Improved the bulk loading of table data within the XMLDB editor improving its overall performance Contributions: * Derek Henderson at Remote-Learner - TL-22097
Release 12.13 (30th December 2019):
Important: TL-22800 Reworked the appraisal role assignment process to prevent duplicate assignments 1) This patch adds a new index to the appraisal_user_assignment table – a unique index on an appraisal ID/appraisee ID combination. It is possible that a site's appraisal_user_assignment table already has duplicates; in this case, the site upgrade will fail. Therefore before doing this upgrade, back up the site and then run this SQL query: SELECT userid, appraisalid, count(appraisalid) as duplicates FROM mdl_appraisal_user_assignment GROUP BY appraisalid, userid HAVING count(appraisalid) > 1 If this query returns a result, it means that the table has duplicates, and they must be resolved first before an upgrade can successfully run. For help, get in touch with the Totara support team and indicate the site has been affected by TL-22800. 2) The behaviour has changed when the 'Update now' button is pressed in the appraisal assignment tab. This is only for dynamic appraisals and the button appears when appraisal assignments are added/removed after activation. Previously when the button was pressed, the assignments were updated in real time and the user would wait until the operation completed. The refreshed screen would then show the updated list of appraisees. With this patch, pressing the button spawns an ad hoc task instead and the refreshed screen does not show the updated list of appraisees. Only when the ad hoc task runs (depending on the next cron run – usually in the next minute) are the assignments updated. When the user revisits the appraisal assignment page, it will show the updated list of appraisees. Security issues: TL-21671 Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues Improvements: TL-19291 Disabled the MathJax filter plugin for fresh installations The MathJax library is being fetched through the official content distribution network. While it is a secure way of distributing the library, this introduces some extra security risks that are unnecessary if the library is not being used. Therefore it is recommended to disable the plugin if formulas are not used in the editor anywhere on the site. TL-22097 Added support for redirection to originally-requested page when users are required to add missing profile information TL-22118 Removed support for obsolete counted recordsets SQL_CALC_FOUND_ROWS and FOUND_ROWS() were deprecated as of MySQL 8.0.17. Both were used by the get_counted_recordset() function, which is now marked as deprecated and all usages have been modified to use alternatives. TL-22598 Improved 'Course visibility' selector help text TL-22697 Added a label to the seminar sign-in sheet download form TL-22837 Added setting to allow Solr search engine-defined default search fields to be used instead of those sent by Totara TL-22979 Added screen reader text stating which filters are in use when using the Grid catalogue TL-22982 Improved button signification when using a screen reader on the Grid catalogue The 'share', 'list view' and 'grid view' buttons are now correctly signified as buttons when using screen reader on the Grid catalogue. TL-23169 Fixed an editor width issue when modifying database activity templates TL-23170 Improved user interface of course enrolment page for guest and learning plan enrolment types TL-23261 Improved the error message when a user without managers cannot be added to a wait-listed event Please note that a user without managers cannot be added to a wait-listed event if the seminar requires manager approval. TL-23265 Introduced an environment check for Totara 12 and below to prevent installation and upgrade if PHP 7.4 is being used TL-23274 Allowed seminar events dashboard to scroll left-to-right on small screens TL-23328 Improved the parsing of dates for custom profile fields obtained from LDAP servers Previously the supported format of dates in LDAP servers was limited to unix timestamps, this change adds parsing of multiple date formats supported by PHP DateTime class. Bug fixes: TL-19293 Replaced parsing of members in course groups using JavaScript eval function with JSON.parse TL-20745 Ensured that due dates are not changed on user reassignment of expired certifications TL-22914 Ensured MS Word-type document files display the correct flex icon TL-22945 Removed "Home", "Find Learning" and "Log in" menu items from the site policy page when users are not logged in This includes a fix for site policies set up to use the 'multi-language content' filter. Previously if a user changed languages on the site policy page it would still display the 'en' content, now it displays the correct content for the selected language when possible. TL-22952 Fixed a bug so that the 'session_deleted' event will always be triggered after deleting a seminar event TL-23047 Fixed SQL server version detection to work around problems with legacy database compatibility levels TL-23048 Fixed a bug causing a 'duplicate key value violates unique constraint' error when swapping dates between seminar sessions TL-23070 Fixed the certification active period translation in the Grid catalogue Previously, the duration of the certification active period was displayed as a hard-coded English-language string in the catalogue. It is now converted to a language string. TL-23162 Fixed JavaScript error when loading a page with no results in Grid catalogue TL-23165 Fixed inconsistency of Bootstrap Javascript versions Previously, the thirdpartylibs.xml stated that the bootstrap Javascript version in use was 3.3.7, when in fact it was version 3.3.4. There were no code changes and all security fixes included in 3.4.1 are still present. TL-23236 Prevented the resetting of course format 'Number of sections' values during course upload update Previously when updating a course through course upload update, the 'Number of sections' of course format (say "topics" or "weeks") was reset with the default value (under some conditions). If the actual number of sections exceeded the default value, some activities were affected by being moved to the Orphaned section of the course. This fix ensures that the 'Number of sections' value is not reset. TL-23237 Fixed an issue where incorrect links were generated for certificate downloads Previously the list of certificate files used to generate the links included directories, and when generating the links the filenames were overridden with the next one in the list. Due to the sort order of some databases this could result in the filename in the link being replaced by the full-stop representing the directory. TL-23260 Fixed an issue with iCalendar attachments (ical) that could prevent seminar booking confirmation emails sending when 'One message per date' is enabled TL-23281 Fixed attendee bookings when manager reservation expires Previously when a manager reservation expired, users who were not on the wait-list were given priority to sign up over the wait-listed users. This patch has fixed the issue, so that when a manager reservation expires, the wait listed users are automatically added as attendees. TL-23291 Glossary auto-linking filter now works correctly in the Grid catalogue TL-23293 Fixed the enrol users modal to always appear above all other content on the page TL-23311 Reworked gradebook purging in course archiving Manual grades as well as grade overrides are now consistently purged when course completion is archived during certification reset or manual course archiving. TL-23313 Fixed typos in various language strings in the English language pack TL-23344 Fixed 'Booked by' column displaying 'Reserved' for self-booked users instead of their name TL-23345 Fixed the capitalisation of tag names displayed in the grid catalogue filter When configuring the Grid catalogue to use tags as a filter, the tag names would always be displayed in lowercase, regardless of the case used when creating them. The display case now reflects exactly what was entered by the user when the tag was created. API changes: TL-23143 Mustache autoloader no longer repetitively registers shutdown handlers TL-23144 Improved the bulk loading of table data within the XMLDB editor improving its overall performance Contributions: * Derek Henderson at Remote-Learner - TL-22097
Release 11.22 (30th December 2019):
Important: TL-22800 Reworked the appraisal role assignment process to prevent duplicate assignments 1) This patch adds a new index to the appraisal_user_assignment table – a unique index on an appraisal ID/appraisee ID combination. It is possible that a site's appraisal_user_assignment table already has duplicates; in this case, the site upgrade will fail. Therefore before doing this upgrade, back up the site and then run this SQL query: SELECT userid, appraisalid, count(appraisalid) as duplicates FROM mdl_appraisal_user_assignment GROUP BY appraisalid, userid HAVING count(appraisalid) > 1 If this query returns a result, it means that the table has duplicates, and they must be resolved first before an upgrade can successfully run. For help, get in touch with the Totara support team and indicate the site has been affected by TL-22800. 2) The behaviour has changed when the 'Update now' button is pressed in the appraisal assignment tab. This is only for dynamic appraisals and the button appears when appraisal assignments are added/removed after activation. Previously when the button was pressed, the assignments were updated in real time and the user would wait until the operation completed. The refreshed screen would then show the updated list of appraisees. With this patch, pressing the button spawns an ad hoc task instead and the refreshed screen does not show the updated list of appraisees. Only when the ad hoc task runs (depending on the next cron run – usually in the next minute) are the assignments updated. When the user revisits the appraisal assignment page, it will show the updated list of appraisees. Security issues: TL-21671 Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues Improvements: TL-22118 Removed support for obsolete counted recordsets SQL_CALC_FOUND_ROWS and FOUND_ROWS() were deprecated as of MySQL 8.0.17. Both were used by the get_counted_recordset() function, which is now marked as deprecated and all usages have been modified to use alternatives. TL-22697 Added a label to the seminar sign-in sheet download form TL-22837 Added setting to allow Solr search engine-defined default search fields to be used instead of those sent by Totara TL-23265 Introduced an environment check for Totara 12 and below to prevent installation and upgrade if PHP 7.4 is being used Bug fixes: TL-20745 Ensured that due dates are not changed on user reassignment of expired certifications TL-22945 Removed "Home", "Find Learning" and "Log in" menu items from the site policy page when users are not logged in This includes a fix for site policies set up to use the 'multi-language content' filter. Previously if a user changed languages on the site policy page it would still display the 'en' content, now it displays the correct content for the selected language when possible. TL-23047 Fixed SQL server version detection to work around problems with legacy database compatibility levels TL-23165 Fixed inconsistency of Bootstrap Javascript versions Previously, the thirdpartylibs.xml stated that the bootstrap Javascript version in use was 3.3.7, when in fact it was version 3.3.4. There were no code changes and all security fixes included in 3.4.1 are still present. TL-23236 Prevented the resetting of course format 'Number of sections' values during course upload update Previously when updating a course through course upload update, the 'Number of sections' of course format (say "topics" or "weeks") was reset with the default value (under some conditions). If the actual number of sections exceeded the default value, some activities were affected by being moved to the Orphaned section of the course. This fix ensures that the 'Number of sections' value is not reset. TL-23237 Fixed an issue where incorrect links were generated for certificate downloads Previously the list of certificate files used to generate the links included directories, and when generating the links the filenames were overridden with the next one in the list. Due to the sort order of some databases this could result in the filename in the link being replaced by the full-stop representing the directory. TL-23311 Reworked gradebook purging in course archiving Manual grades as well as grade overrides are now consistently purged when course completion is archived during certification reset or manual course archiving. TL-23313 Fixed typos in various language strings in the English language pack
Release 10.28 (30th December 2019):
Important: TL-22800 Reworked the appraisal role assignment process to prevent duplicate assignments 1) This patch adds a new index to the appraisal_user_assignment table – a unique index on an appraisal ID/appraisee ID combination. It is possible that a site's appraisal_user_assignment table already has duplicates; in this case, the site upgrade will fail. Therefore before doing this upgrade, back up the site and then run this SQL query: SELECT userid, appraisalid, count(appraisalid) as duplicates FROM mdl_appraisal_user_assignment GROUP BY appraisalid, userid HAVING count(appraisalid) > 1 If this query returns a result, it means that the table has duplicates, and they must be resolved first before an upgrade can successfully run. For help, get in touch with the Totara support team and indicate the site has been affected by TL-22800. 2) The behaviour has changed when the 'Update now' button is pressed in the appraisal assignment tab. This is only for dynamic appraisals and the button appears when appraisal assignments are added/removed after activation. Previously when the button was pressed, the assignments were updated in real time and the user would wait until the operation completed. The refreshed screen would then show the updated list of appraisees. With this patch, pressing the button spawns an ad hoc task instead and the refreshed screen does not show the updated list of appraisees. Only when the ad hoc task runs (depending on the next cron run – usually in the next minute) are the assignments updated. When the user revisits the appraisal assignment page, it will show the updated list of appraisees. Security issues: TL-21671 Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues Improvements: TL-22697 Added a label to the seminar sign-in sheet download form TL-23265 Introduced an environment check for Totara 12 and below to prevent installation and upgrade if PHP 7.4 is being used Bug fixes: TL-23165 Fixed inconsistency of Bootstrap Javascript versions Previously, the thirdpartylibs.xml stated that the bootstrap Javascript version in use was 3.3.7, when in fact it was version 3.3.4. There were no code changes and all security fixes included in 3.4.1 are still present. TL-23237 Fixed an issue where incorrect links were generated for certificate downloads Previously the list of certificate files used to generate the links included directories, and when generating the links the filenames were overridden with the next one in the list. Due to the sort order of some databases this could result in the filename in the link being replaced by the full-stop representing the directory.
Release 9.39 (30th December 2019):
Important: TL-22800 Reworked the appraisal role assignment process to prevent duplicate assignments 1) This patch adds a new index to the appraisal_user_assignment table – a unique index on an appraisal ID/appraisee ID combination. It is possible that a site's appraisal_user_assignment table already has duplicates; in this case, the site upgrade will fail. Therefore before doing this upgrade, back up the site and then run this SQL query: SELECT userid, appraisalid, count(appraisalid) as duplicates FROM mdl_appraisal_user_assignment GROUP BY appraisalid, userid HAVING count(appraisalid) > 1 If this query returns a result, it means that the table has duplicates, and they must be resolved first before an upgrade can successfully run. For help, get in touch with the Totara support team and indicate the site has been affected by TL-22800. 2) The behaviour has changed when the 'Update now' button is pressed in the appraisal assignment tab. This is only for dynamic appraisals and the button appears when appraisal assignments are added/removed after activation. Previously when the button was pressed, the assignments were updated in real time and the user would wait until the operation completed. The refreshed screen would then show the updated list of appraisees. With this patch, pressing the button spawns an ad hoc task instead and the refreshed screen does not show the updated list of appraisees. Only when the ad hoc task runs (depending on the next cron run – usually in the next minute) are the assignments updated. When the user revisits the appraisal assignment page, it will show the updated list of appraisees. Security issues: TL-21671 Legacy internal flag 'ignoresesskey' is now usable within one request only, to prevent any potential security issues Improvements: TL-22697 Added a label to the seminar sign-in sheet download form Bug fixes: TL-23165 Fixed inconsistency of Bootstrap Javascript versions Previously, the thirdpartylibs.xml stated that the bootstrap Javascript version in use was 3.3.7, when in fact it was version 3.3.4. There were no code changes and all security fixes included in 3.4.1 are still present. TL-23237 Fixed an issue where incorrect links were generated for certificate downloads Previously the list of certificate files used to generate the links included directories, and when generating the links the filenames were overridden with the next one in the list. Due to the sort order of some databases this could result in the filename in the link being replaced by the full-stop representing the directory.