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:
- Russell England - Kineo USA - TL-29635
Release 13.5 (24th February 2021):
Security issues: TL-29223 Added sanitisation and filtering to customfield textarea output As part of an investigation into filtering of other custom field types, we discovered that textarea custom field values were not being correctly sanitised for output, and filtering (for example Multi-Language filtering) was not being applied. User-submitted textarea values were sanitised on input, so it would be difficult for users to exploit this bug for cross-site scripting without access to the database. Textarea custom field values are now being sanitised and filtered on output. New features: TL-29235 Modified the recommender engine to use user profile data Performance improvements: TL-29347 Improved performance of get_records_menu function The get_records_menu function was calling array_shift a huge number of times. All the _menu dml functions have be re-written to be more efficient. TL-29351 Added static cache to improve performance of the normalize_component function TL-29353 Improved performance of fix_table_names in Database Layer functions This patch makes an improvement to a core function in the database layer to reduce the number of expensive function calls. Improvements: TL-11308 Added an aria-label attribute when setting link type to a course for a legacy competency TL-26729 Fixed Tui Modals so they now check for accessible models on every title change TL-28814 Moved Torara course completion import to an adhoc task As part of this change a new 'Processed' column has been added to the 'Completion import: Certification status' and 'Completion import: Course status' embedded reports. On upgrade, this will need to be manually added or the report restored to default settings for it to show. TL-28971 Added Course completion status column to the Record of Learning: Courses report source TL-28978 Improved accessibility of admin menu settings page TL-29019 Added client-side validation when adding virtual rooms to a seminar session TL-29202 Added a discovery call to Zoom virtual meeting plugin so that it only attempts a meeting update if the date and/or duration have actually changed TL-29205 Improved location of 'expand all' and 'collapse all' links when using expanding course topics TL-29354 Changed is_numeric() to is_number() in normalise_limit_from_num() database layer function A debugdeveloper notice will be generated if whole numbers are not used. TL-29377 Included an upload transcript button on audio file block "Upload transcript" button appears on the weka audio file block when uploaded only for the first time. TL-29422 Created a new notification when a new discussion is posted in the workspace Workspace members will now receive a notifications when a new discussion is posted in the workspace TL-29430 Converted reset tour link to a button to improve accessibility TL-29561 Improved alignment of topics with long names and collapsible topics TL-29563 Removed incorrect direct use of phpunit_util from tests Bug fixes: TL-27159 Added the ability for the mobile plugin to remove rejected push notification tokens Previously if AirNotifier rejected a push notification's token because Google Firebase Cloud Messaging reported it as being invalid, the error was ignored. Now it is logged, and the invalid token is removed from any devices using it. TL-28418 Fixed unread message count badge on Totara Mobile iOS app when using push notifications TL-28472 Fixed theme settings not applying on Edge Legacy TL-28765 Fixed memory limit exceeded when loading performance activities with a large number of section elements TL-28942 Improved accessibility of course topics format TL-28962 Fixed competency criteria aggregation allowing 0 required items TL-28997 Fixed filtering of location custom field values Previously, location custom field values were filtered on input. When the Multi-Language filter was enabled, this resulted in a Multi-Language value being saved in the user's current language only, while values in other languages were lost. This has been fixed, and new Multi-Language values in location custom fields will work as expected for users viewing the value in other languages. TL-29052 Fixed email mustache template to use colours from theme settings TL-29153 Fixed theme settings capability issue during site upgrade During site upgrade, using the web interface and upgrading from versions earlier than 13.0, debug messages are thrown in the error logs and the HTTP request for styles might fail because of a capability check for a capability that might not be installed yet. TL-29221 Indicated user's preferred language when making Microsoft Graph API calls This patch forwards the user's language when creating MS Teams virtual meeting rooms, so that the resulting room info, which is generated by the Graph API, is in the room creator's language. TL-29323 Fixed theme settings to use theme assigned to user instead of theme defined in config TL-29368 Stopped an 'Unsaved changes' message when saving a form after uploading files via an atto editor TL-29384 Hook added to extend list of categories with CSS variables in theme settings Clients can now use the hook \core\hook\theme_settings_css_categories to extend the list of categories in theme settings that contains CSS variable settings TL-29391 Fixed the ability to use a default category Since we added new hidden system categories in Totara 13.0 it has been possible to enter a broken state by deleting the default "Miscellaneous" category, in some cases this would lead to the system categories being used as defaults. This caused several issues, the most notable of which is the create course/program/certification forms would be broken. We've rectified the issue by setting the default category to a non-system category, recreating "Miscellaneous" if necessary. And making sure that system categories are not used by default. TL-29392 Fixed an issue with Microsoft Teams where the 'tap area' of a card was preventing contents being inserted via the messaging extension The tap area has been replaced by a button matching the catalogue details, 'View' or 'Go to' TL-29393 Added missing admin_externalpage_setup() to scheduledtasks.php TL-29406 Fixed badge notifications created with Weka editor displaying as JSON code TL-29409 Added missing language strings for recent versions of Totara Mobile app Several new language strings were added to the Totara Mobile app since the release of Totara 13, but not added to Totara and AMOS to be translated. These have now been added and will be available in the translation and language string customisation systems. TL-29415 Fixed virtual meeting information display on seminar room details page Several fixes have been made to the virtual meeting information card: * Made card visible to managers approving booking requests * Prevented showing the card to learners when they should not see virtual meeting information * Hid the 'Host meeting' button from non-owners as only the meeting owner can access the host URL * Fixed some accessibility issues TL-29417 Fixed inconsistent filtering of custom field text values As part of an investigation into filtering of other custom field types, we discovered that filtering (for example Multi-Language filtering) was being applied to text custom field values when displayed in report builder, but not in other areas. Text custom field values are now consistently formatted for display. TL-29429 Fixed memory issues and improved performance of evidence migration TL-29431 Fixed 'Number of Attendees' report builder column for seminar event report TL-29433 Fixed 'Can not find data record in database' error when seminar virtualmeeting room was used TL-29434 Fixed 'Booking status' report builder column for seminar event report TL-29436 Fixed theme_config loading issues in theme settings TL-29443 Fixed a redirection problem of the Find learning tab on Microsoft Teams TL-29444 Fixed rendering of graphs when exporting reports to PDF TL-29445 Fixed redirection to home page after adding missing required profile data when user logs in via OAuth 2 TL-29446 Added custom CSS and log in image to tenant-customisable theme config TL-29464 Fixed upgrade step issue when creating Learning Plan assignment types for Programs introduced via TL-24703 TL-29465 Fixed a typo for seminar manager approval help string TL-29560 Fixed caseless searching of seminar room, asset, and facilitator dialogs when non-ascii characters are used TL-29562 Ensured the learner is returned to the course when using guest enrolment TL-29576 Fixed the display of questions in a quiz activity for the Basis theme TL-29583 Fixed missing aria-label when adding new groups on admin menu settings page TL-29609 Fixed breadcrumbs on the certification details page TL-29610 Fixed missing escaping of table names in ORM has_many_through and has_one_through relations TL-29618 Fixed incorrect event observers and hook watchers reset in PHPUnit tests TL-29619 Updated link to event page in seminar notification for virtual meeting creation failure This patch contains an upgrade step which replaces the '[session:room:link]' placeholder in the global 'Virtual meeting creation failure' notification template with '[seminareventdetailslink]', and also updates the placeholder in any seminar activity notifications linked to that template. If you have customised the 'Virtual meeting creation failure' notification in any seminar activities, we recommend replacing the placeholder by hand. TL-29625 Added inline documentation to explain the purpose of, and ensured that $PAGE->context is set for, the server error page. TL-29635 Ensured that the correct method to detect whether tags are enabled is used in modedit.php API changes: TL-29345 Updated PHPUnit to prime and store the GraphQL schema cache between tests Contributions: * Russell England - Kineo USA - TL-29635
Release 12.28 (24th February 2021):
Security issues: TL-29223 Added sanitisation and filtering to customfield textarea output As part of an investigation into filtering of other custom field types, we discovered that textarea custom field values were not being correctly sanitised for output, and filtering (for example Multi-Language filtering) was not being applied. User-submitted textarea values were sanitised on input, so it would be difficult for users to exploit this bug for cross-site scripting without access to the database. Textarea custom field values are now being sanitised and filtered on output. Improvements: TL-28971 Added Course completion status column to the Record of Learning: Courses report source Bug fixes: TL-28997 Fixed filtering of location custom field values Previously, location custom field values were filtered on input. When the Multi-Language filter was enabled, this resulted in a Multi-Language value being saved in the user's current language only, while values in other languages were lost. This has been fixed, and new Multi-Language values in location custom fields will work as expected for users viewing the value in other languages. TL-29368 Stopped an 'Unsaved changes' message when saving a form after uploading files via an atto editor TL-29417 Fixed inconsistent filtering of custom field text values As part of an investigation into filtering of other custom field types, we discovered that filtering (for example Multi-Language filtering) was being
applied to text custom field values when displayed in report builder, but not in other areas. Text custom field values are now consistently formatted for display. TL-29562 Ensured the learner is returned to the course when using guest enrolment TL-29576 Fixed the display of questions in a quiz activity for the Basis theme TL-29609 Fixed breadcrumbs on the certification details page TL-29618 Fixed incorrect event observers and hook watchers reset in PHPUnit tests TL-29635 Ensured that the correct method to detect whether tags are enabled is used in modedit.php Contributions: * Russell England - Kineo USA - TL-29635
Release 11.37 (24th February 2021):
Security issues: TL-29613 Added sanitisation to customfield textarea output As part of an investigation into filtering of other custom field types, we discovered that textarea custom field values were not being correctly sanitised for output. User-submitted textarea values were sanitised on input, so it would be difficult for users to exploit this bug for cross-site scripting without access to the database. Textarea custom field values are now being sanitised on output. Bug fixes: TL-29618 Fixed incorrect event observers and hook watchers reset in PHPUnit tests TL-29635 Ensured that the correct method to detect whether tags are enabled is used in modedit.php Contributions: * Russell England - Kineo USA - TL-29635
Release 10.42 (24th February 2021):
Security issues: TL-29613 Added sanitisation to customfield textarea output As part of an investigation into filtering of other custom field types, we discovered that textarea custom field values were not being correctly sanitised for output. User-submitted textarea values were sanitised on input, so it would be difficult for users to exploit this bug for cross-site scripting without access to the database. Textarea custom field values are now being sanitised on output. Bug fixes: TL-29618 Fixed incorrect event observers and hook watchers reset in PHPUnit tests
Release 9.52 (24th February 2021):
Bug fixes: TL-29618 Fixed incorrect event observers and hook watchers reset in PHPUnit tests