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 upgrading.
Each release also includes various bug fixes and improvements.
A big thanks to the following people for their contributions to this release:
- James Tombs at Think Learning - TL-36597
Release Team
Release 17.12 (30th October 2023):
Important: TL-38442 Made sure the upgrade step for the previously fixed TL-36874 runs properly This upgrade was included in the previous releases, 13.35, 14.27, 15.22, 16.16, 17.10. However due to a conflict with versions, it would not run if upgrading from the version directly prior to that. i.e. 16.15->16.16 or 17.9->17.10. This has been fixed to ensure the upgrade runs correctly, updating the default of the status column in the course completions table to 10, and setting all existing records with an invalid value to that default on upgrade. TL-38627 Clarification of upgrade behaviour of TL-32205 introduced in 14.5 and 15.0 The improvement TL-32205 was introduced in version 14.5 and 15.0, changing the way Totara calculates the actual due dates for users on programs and certifications. The impact during upgrade as described in the changelog entry for this ticket was not clear enough. The following is a more detailed explanation of what happens during upgrade coming from an older version of Totara. In Totara versions before 14.5, due dates based on months or years in the program and certification assignments were calculated based on hard-coded constants of 30 and 365 days respectively, not based on the actual calendar months/years. This has been changed with the introduction of two new database fields that now store proper date offset information. Using this information, users' due dates are now calculated correctly based on what the user sees in the assignment interface. *Upgrades from 14.4 or older to 14.5 or higher:* TL-32205 updates all existing program and certification assignments from using a multiple of 30 days for months, and 365 days for years to the actual calendar months/years. Following the upgrade the next execution of either "\totara_program\task\assignments_deferred_task" or "\totara_program\task\user_assignments_task" cron task, the actual due dates for the users assigned to the programs/certifications will be recalculated. This can potentially set users' due dates to a later date than before. *Example:* A program assignment was previously set to 3 months. In the table prog_assignment it was stored as 3 * 30 days (converted to seconds). On upgrade the assignment converts to 3 calendar months, stored in separate fields in the table. The due dates for the users assigned and who have not completed the program will be updated to 92 days on execution of the cronjob. The due dates will not be set to earlier dates during this process, only later ones. If this behaviour is not desired the due dates for any program or certification assignment need to be changed to days AFTER running the upgrade but BEFORE running cron the next time. If a site has already been upgraded to one of the affected versions, assignments can be manually changed to a multiple of 30 days or 365 days to reflect the previous behaviour but this will not affect any due date which has been updated during the upgrade to a later date. Security issues: TL-38428 Sanitized user search inputs on the 'Permissions > Check system permissions' page TL-38434 Added restrictions to the evidence bank embedded report to ensure that users can only view their own evidence TL-38519 Fixed handling of error responses from ReCAPTCHA version 2 TL-38658 Added stricter cleaning of message processor type parameter TL-38664 Improved checks when editing comments in the Wiki module TL-38686 Updated the IMSCP module to use appropriate unserialization of package structures TL-38687 Improved the unserializing and comparison of properties in the Lesson module Performance improvements: TL-36597 Improved performance of course visibility checks when being part of a database query Improvements: TL-37693 Improved a multi-choice question edit behaviour when there are already answers submitted When a user tries to *update* the values of a Multi-choice or Multi-choice (rated) question, the warning banner will be displayed and warns the user of potential data corruption or data loss. TL-37694 Rearranged user report output so that session can be closed before report data is fetched and displayed Report builder now closes the user session before fetching user report data, meaning that long-running reports no longer prevent a user from carrying out other actions in the system. In the event that a custom report source uses a custom display function that attempts to write to the user session during report generation, this patch will cause that session access to throw an exception. If this happens, please set $CFG->keep_session_open_during_report_generation = true to disable session close, and contact support. This option will be removed in version 18. TL-38112 Warning added for the minor versions of MariaDB (10.7, 10.8, 10.9 and 10.10) that are not supported TL-38397 Improved error messages when notifications scheduled tasks encounter errors TL-38409 Renamed centralised notifications scheduled tasks to make them easier to understand Bug fixes: TL-36814 Fixed the "customheading" option when define a new default column heading For third party report source which extend Totara report sources, the custom heading option for a column was not working as expected. This has now been fixed. TL-37765 Fixed and improved guest user consent functionality * Improved the memory usage of validation for the site policy page when a new or returning user accesses the page * The system now creates a single record in the tool_sitepolicy_user_consent table for a site policy page when a guest user accesses the page TL-37965 Fixed setting relative course duedates In some scenarios course_completion is created before the user enrols into the course. In these cases, the relative course duedate was set to the 1st of January 1970. This patch fixes this behaviour and ensures the correct due dates are set on enrolment. This patch does not correct existing due dates. Manual due date correction can be done via the course completion editor. Alternatively changing the due date in a course triggers recalculation of due dates of all users enrolled. TL-38188 Fixed \core_completion\task\update_completion_due_dates_task throwing an exception if course got deleted before it runs TL-38581 Improved handling of course due date calculation This partly reverts TL-36732 as the adhoc task to calculate course due dates was triggered in too many places causing performance issues on large sites. The performance of updating due dates for entires courses has been further optimised. This also addresses missing completion cache invalidations which caused outdated due dates being displayed for users. Technical changes: TL-38634 Updated the unserialize array function to support some extra characters This updates the unserialize_array() function moodlelib, allowing support for characters like semi-colons. Contributions: * James Tombs at Think Learning - TL-36597
Release 16.18 (30th October 2023):
Important: TL-38442 Made sure the upgrade step for the previously fixed TL-36874 runs properly This upgrade was included in the previous releases, 13.35, 14.27, 15.22, 16.16, 17.10. However due to a conflict with versions, it would not run if upgrading from the version directly prior to that. i.e. 16.15->16.16 or 17.9->17.10. This has been fixed to ensure the upgrade runs correctly, updating the default of the status column in the course completions table to 10, and setting all existing records with an invalid value to that default on upgrade. TL-38627 Clarification of upgrade behaviour of TL-32205 introduced in 14.5 and 15.0 The improvement TL-32205 was introduced in version 14.5 and 15.0, changing the way Totara calculates the actual due dates for users on programs and certifications. The impact during upgrade as described in the changelog entry for this ticket was not clear enough. The following is a more detailed explanation of what happens during upgrade coming from an older version of Totara. In Totara versions before 14.5, due dates based on months or years in the program and certification assignments were calculated based on hard-coded constants of 30 and 365 days respectively, not based on the actual calendar months/years. This has been changed with the introduction of two new database fields that now store proper date offset information. Using this information, users' due dates are now calculated correctly based on what the user sees in the assignment interface. *Upgrades from 14.4 or older to 14.5 or higher:* TL-32205 updates all existing program and certification assignments from using a multiple of 30 days for months, and 365 days for years to the actual calendar months/years. Following the upgrade the next execution of either "\totara_program\task\assignments_deferred_task" or "\totara_program\task\user_assignments_task" cron task, the actual due dates for the users assigned to the programs/certifications will be recalculated. This can potentially set users' due dates to a later date than before. *Example:* A program assignment was previously set to 3 months. In the table prog_assignment it was stored as 3 * 30 days (converted to seconds). On upgrade the assignment converts to 3 calendar months, stored in separate fields in the table. The due dates for the users assigned and who have not completed the program will be updated to 92 days on execution of the cronjob. The due dates will not be set to earlier dates during this process, only later ones. If this behaviour is not desired the due dates for any program or certification assignment need to be changed to days AFTER running the upgrade but BEFORE running cron the next time. If a site has already been upgraded to one of the affected versions, assignments can be manually changed to a multiple of 30 days or 365 days to reflect the previous behaviour but this will not affect any due date which has been updated during the upgrade to a later date. Security issues: TL-38428 Sanitized user search inputs on the 'Permissions > Check system permissions' page TL-38434 Added restrictions to the evidence bank embedded report to ensure that users can only view their own evidence TL-38519 Fixed handling of error responses from ReCAPTCHA version 2 TL-38658 Added stricter cleaning of message processor type parameter TL-38664 Improved checks when editing comments in the Wiki module TL-38686 Updated the IMSCP module to use appropriate unserialization of package structures TL-38687 Improved the unserializing and comparison of properties in the Lesson module Performance improvements: TL-36597 Improved performance of course visibility checks when being part of a database query Improvements: TL-37693 Improved a multi-choice question edit behaviour when there are already answers submitted When a user tries to *update* the values of a Multi-choice or Multi-choice (rated) question, the warning banner will be displayed and warns the user of potential data corruption or data loss. TL-37694 Rearranged user report output so that session can be closed before report data is fetched and displayed Report builder now closes the user session before fetching user report data, meaning that long-running reports no longer prevent a user from carrying out other actions in the system. In the event that a custom report source uses a custom display function that attempts to write to the user session during report generation, this patch will cause that session access to throw an exception. If this happens, please set $CFG->keep_session_open_during_report_generation = true to disable session close, and contact support. This option will be removed in version 18. TL-38112 Warning added for the minor versions of MariaDB (10.7, 10.8, 10.9 and 10.10) that are not supported Bug fixes: TL-36814 Fixed the "customheading" option when define a new default column heading For third party report source which extend Totara report sources, the custom heading option for a column was not working as expected. This has now been fixed. TL-37579 Fixed an issue where an external respondent viewed a page for a performance activity, and the subject user profileimagealt field had a null value TL-37765 Fixed and improved guest user consent functionality * Improved the memory usage of validation for the site policy page when a new or returning user accesses the page * The system now creates a single record in the tool_sitepolicy_user_consent table for a site policy page when a guest user accesses the page TL-37965 Fixed setting relative course duedates In some scenarios course_completion is created before the user enrols into the course. In these cases, the relative course duedate was set to the 1st of January 1970. This patch fixes this behaviour and ensures the correct due dates are set on enrolment. This patch does not correct existing due dates. Manual due date correction can be done via the course completion editor. Alternatively changing the due date in a course triggers recalculation of due dates of all users enrolled. TL-38188 Fixed \core_completion\task\update_completion_due_dates_task throwing an exception if course got deleted before it runs TL-38581 Improved handling of course due date calculation This partly reverts TL-36732 as the adhoc task to calculate course due dates was triggered in too many places causing performance issues on large sites. The performance of updating due dates for entires courses has been further optimised. This also addresses missing completion cache invalidations which caused outdated due dates being displayed for users. Technical changes: TL-38634 Updated the unserialize array function to support some extra characters This updates the unserialize_array() function moodlelib, allowing support for characters like semi-colons. Contributions: * James Tombs at Think Learning - TL-36597
Release 15.24 (30th October 2023):
Important: TL-38442 Made sure the upgrade step for the previously fixed TL-36874 runs properly This upgrade was included in the previous releases, 13.35, 14.27, 15.22, 16.16, 17.10. However due to a conflict with versions, it would not run if upgrading from the version directly prior to that. i.e. 16.15->16.16 or 17.9->17.10. This has been fixed to ensure the upgrade runs correctly, updating the default of the status column in the course completions table to 10, and setting all existing records with an invalid value to that default on upgrade. TL-38627 Clarification of upgrade behaviour of TL-32205 introduced in 14.5 and 15.0 The improvement TL-32205 was introduced in version 14.5 and 15.0, changing the way Totara calculates the actual due dates for users on programs and certifications. The impact during upgrade as described in the changelog entry for this ticket was not clear enough. The following is a more detailed explanation of what happens during upgrade coming from an older version of Totara. In Totara versions before 14.5, due dates based on months or years in the program and certification assignments were calculated based on hard-coded constants of 30 and 365 days respectively, not based on the actual calendar months/years. This has been changed with the introduction of two new database fields that now store proper date offset information. Using this information, users' due dates are now calculated correctly based on what the user sees in the assignment interface. *Upgrades from 14.4 or older to 14.5 or higher:* TL-32205 updates all existing program and certification assignments from using a multiple of 30 days for months, and 365 days for years to the actual calendar months/years. Following the upgrade the next execution of either "\totara_program\task\assignments_deferred_task" or "\totara_program\task\user_assignments_task" cron task, the actual due dates for the users assigned to the programs/certifications will be recalculated. This can potentially set users' due dates to a later date than before. *Example:* A program assignment was previously set to 3 months. In the table prog_assignment it was stored as 3 * 30 days (converted to seconds). On upgrade the assignment converts to 3 calendar months, stored in separate fields in the table. The due dates for the users assigned and who have not completed the program will be updated to 92 days on execution of the cronjob. The due dates will not be set to earlier dates during this process, only later ones. If this behaviour is not desired the due dates for any program or certification assignment need to be changed to days AFTER running the upgrade but BEFORE running cron the next time. If a site has already been upgraded to one of the affected versions, assignments can be manually changed to a multiple of 30 days or 365 days to reflect the previous behaviour but this will not affect any due date which has been updated during the upgrade to a later date. Security issues: TL-38428 Sanitized user search inputs on the 'Permissions > Check system permissions' page TL-38434 Added restrictions to the evidence bank embedded report to ensure that users can only view their own evidence TL-38519 Fixed handling of error responses from ReCAPTCHA version 2 TL-38658 Added stricter cleaning of message processor type parameter TL-38664 Improved checks when editing comments in the Wiki module TL-38686 Updated the IMSCP module to use appropriate unserialization of package structures TL-38687 Improved the unserializing and comparison of properties in the Lesson module Performance improvements: TL-36597 Improved performance of course visibility checks when being part of a database query Improvements: TL-37693 Improved a multi-choice question edit behaviour when there are already answers submitted When a user tries to *update* the values of a Multi-choice or Multi-choice (rated) question, the warning banner will be displayed and warns the user of potential data corruption or data loss. TL-37694 Rearranged user report output so that session can be closed before report data is fetched and displayed Report builder now closes the user session before fetching user report data, meaning that long-running reports no longer prevent a user from carrying out other actions in the system. In the event that a custom report source uses a custom display function that attempts to write to the user session during report generation, this patch will cause that session access to throw an exception. If this happens, please set $CFG->keep_session_open_during_report_generation = true to disable session close, and contact support. This option will be removed in version 18. TL-38112 Warning added for the minor versions of MariaDB (10.7, 10.8, 10.9 and 10.10) that are not supported Bug fixes: TL-36814 Fixed the "customheading" option when define a new default column heading For third party report source which extend Totara report sources, the custom heading option for a column was not working as expected. This has now been fixed. TL-37579 Fixed an issue where an external respondent viewed a page for a performance activity, and the subject user profileimagealt field had a null value TL-37765 Fixed and improved guest user consent functionality * Improved the memory usage of validation for the site policy page when a new or returning user accesses the page * The system now creates a single record in the tool_sitepolicy_user_consent table for a site policy page when a guest user accesses the page Technical changes: TL-38634 Updated the unserialize array function to support some extra characters This updates the unserialize_array() function moodlelib, allowing support for characters like semi-colons. Contributions: * James Tombs at Think Learning - TL-36597
Release 14.29 (30th October 2023):
Important: TL-38442 Made sure the upgrade step for the previously fixed TL-36874 runs properly This upgrade was included in the previous releases, 13.35, 14.27, 15.22, 16.16, 17.10. However due to a conflict with versions, it would not run if upgrading from the version directly prior to that. i.e. 16.15->16.16 or 17.9->17.10. This has been fixed to ensure the upgrade runs correctly, updating the default of the status column in the course completions table to 10, and setting all existing records with an invalid value to that default on upgrade. TL-38627 Clarification of upgrade behaviour of TL-32205 introduced in 14.5 and 15.0 The improvement TL-32205 was introduced in version 14.5 and 15.0, changing the way Totara calculates the actual due dates for users on programs and certifications. The impact during upgrade as described in the changelog entry for this ticket was not clear enough. The following is a more detailed explanation of what happens during upgrade coming from an older version of Totara. In Totara versions before 14.5, due dates based on months or years in the program and certification assignments were calculated based on hard-coded constants of 30 and 365 days respectively, not based on the actual calendar months/years. This has been changed with the introduction of two new database fields that now store proper date offset information. Using this information, users' due dates are now calculated correctly based on what the user sees in the assignment interface. *Upgrades from 14.4 or older to 14.5 or higher:* TL-32205 updates all existing program and certification assignments from using a multiple of 30 days for months, and 365 days for years to the actual calendar months/years. Following the upgrade the next execution of either "\totara_program\task\assignments_deferred_task" or "\totara_program\task\user_assignments_task" cron task, the actual due dates for the users assigned to the programs/certifications will be recalculated. This can potentially set users' due dates to a later date than before. *Example:* A program assignment was previously set to 3 months. In the table prog_assignment it was stored as 3 * 30 days (converted to seconds). On upgrade the assignment converts to 3 calendar months, stored in separate fields in the table. The due dates for the users assigned and who have not completed the program will be updated to 92 days on execution of the cronjob. The due dates will not be set to earlier dates during this process, only later ones. If this behaviour is not desired the due dates for any program or certification assignment need to be changed to days AFTER running the upgrade but BEFORE running cron the next time. If a site has already been upgraded to one of the affected versions, assignments can be manually changed to a multiple of 30 days or 365 days to reflect the previous behaviour but this will not affect any due date which has been updated during the upgrade to a later date. Security issues: TL-38428 Sanitized user search inputs on the 'Permissions > Check system permissions' page TL-38434 Added restrictions to the evidence bank embedded report to ensure that users can only view their own evidence TL-38519 Fixed handling of error responses from ReCAPTCHA version 2 TL-38658 Added stricter cleaning of message processor type parameter TL-38664 Improved checks when editing comments in the Wiki module TL-38686 Updated the IMSCP module to use appropriate unserialization of package structures TL-38687 Improved the unserializing and comparison of properties in the Lesson module Performance improvements: TL-36597 Improved performance of course visibility checks when being part of a database query Improvements: TL-37693 Improved a multi-choice question edit behaviour when there are already answers submitted When a user tries to *update* the values of a Multi-choice or Multi-choice (rated) question, the warning banner will be displayed and warns the user of potential data corruption or data loss. TL-37694 Rearranged user report output so that session can be closed before report data is fetched and displayed Report builder now closes the user session before fetching user report data, meaning that long-running reports no longer prevent a user from carrying out other actions in the system. In the event that a custom report source uses a custom display function that attempts to write to the user session during report generation, this patch will cause that session access to throw an exception. If this happens, please set $CFG->keep_session_open_during_report_generation = true to disable session close, and contact support. This option will be removed in version 18. TL-38112 Warning added for the minor versions of MariaDB (10.7, 10.8, 10.9 and 10.10) that are not supported Bug fixes: TL-36814 Fixed the "customheading" option when define a new default column heading For third party report source which extend Totara report sources, the custom heading option for a column was not working as expected. This has now been fixed. TL-37579 Fixed an issue where an external respondent viewed a page for a performance activity, and the subject user profileimagealt field had a null value TL-37765 Fixed and improved guest user consent functionality * Improved the memory usage of validation for the site policy page when a new or returning user accesses the page * The system now creates a single record in the tool_sitepolicy_user_consent table for a site policy page when a guest user accesses the page Technical changes: TL-38634 Updated the unserialize array function to support some extra characters This updates the unserialize_array() function moodlelib, allowing support for characters like semi-colons. Contributions: * James Tombs at Think Learning - TL-36597
Release 13.37 (30th October 2023):
Important: TL-38442 Made sure the upgrade step for the previously fixed TL-36874 runs properly This upgrade was included in the previous releases, 13.35, 14.27, 15.22, 16.16, 17.10. However due to a conflict with versions, it would not run if upgrading from the version directly prior to that. i.e. 16.15->16.16 or 17.9->17.10. This has been fixed to ensure the upgrade runs correctly, updating the default of the status column in the course completions table to 10, and setting all existing records with an invalid value to that default on upgrade. Security issues: TL-38434 Added restrictions to the evidence bank embedded report to ensure that users can only view their own evidence TL-38519 Fixed handling of error responses from ReCAPTCHA version 2 TL-38658 Added stricter cleaning of message processor type parameter TL-38664 Improved checks when editing comments in the Wiki module TL-38686 Updated the IMSCP module to use appropriate unserialization of package structures TL-38687 Improved the unserializing and comparison of properties in the Lesson module Performance improvements: TL-36597 Improved performance of course visibility checks when being part of a database query Improvements: TL-37693 Improved a multi-choice question edit behaviour when there are already answers submitted When a user tries to *update* the values of a Multi-choice or Multi-choice (rated) question, the warning banner will be displayed and warns the user of potential data corruption or data loss. TL-37694 Rearranged user report output so that session can be closed before report data is fetched and displayed Report builder now closes the user session before fetching user report data, meaning that long-running reports no longer prevent a user from carrying out other actions in the system. In the event that a custom report source uses a custom display function that attempts to write to the user session during report generation, this patch will cause that session access to throw an exception. If this happens, please set $CFG->keep_session_open_during_report_generation = true to disable session close, and contact support. This option will be removed in version 18. TL-38112 Warning added for the minor versions of MariaDB (10.7, 10.8, 10.9 and 10.10) that are not supported Bug fixes: TL-37765 Fixed and improved guest user consent functionality * Improved the memory usage of validation for the site policy page when a new or returning user accesses the page * The system now creates a single record in the tool_sitepolicy_user_consent table for a site policy page when a guest user accesses the page Technical changes: TL-38634 Updated the unserialize array function to support some extra characters This updates the unserialize_array() function moodlelib, allowing support for characters like semi-colons. Contributions: * James Tombs at Think Learning - TL-36597
Release 12.58 (30th October 2023):
Security issues: TL-38658 Added stricter cleaning of message processor type parameter TL-38664 Improved checks when editing comments in the Wiki module TL-38686 Updated the IMSCP module to use appropriate unserialization of package structures TL-38687 Improved the unserializing and comparison of properties in the Lesson module Technical changes: TL-38634 Updated the unserialize array function to support some extra characters This updates the unserialize_array() function moodlelib, allowing support for characters like semi-colons.