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.
