Totara Release Notes

Totara TXP 17.7, 16.13, 15.19, 14.24, 13.32 and Totara Learn 12.53 are now available

 
Riana Rossouw
Totara TXP 17.7, 16.13, 15.19, 14.24, 13.32 and Totara Learn 12.53 are now available
by Riana Rossouw - Wednesday, 24 May 2023, 10:44 PM
Group Totara

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 various bug fixes and improvements.

Kind regards 

Release Team

Release 17.7 (25th May 2023):

Important:

    TL-37398       Fixed incorrect removal of queued Seminar notifications and overridden Seminar notifications

                   Previously in extremely rare conditions, when a seminar is deleted, queued
                   unsent notifications and customised notifications belonging to one or more other
                   Seminar activities in the same course would be incorrectly deleted.
                   
                   This occurred only when a seminar gets deleted, and the context id of the
                   seminar being deleted was the same as the start of another seminar context id in
                   the same course.
                   
                   The confluence of seminar context id's matching can occur naturally, but will be
                   exceptionally rare. The larger a site is the less likely this is to occur. It
                   also requires a Seminar activity to be deleted, and for any matching seminars in
                   the course to have customised notifications and/or notifications that have been
                   queued to sent, but not yet sent.
                   
                   The issue has now been fixed and will no longer occur.


Security issues:

    TL-36538       Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
    TL-36718       Fixed activities that should have been hidden due to access restrictions

                   Activities can have access restrictions which prevent the activity from being
                   seen by learners until they meet the criteria. On mobile, and the grapql query
                   which provides the data for mobile, these activities were not being hidden. This
                   has been fixed. Activities viewed through the web application were not affected.

    TL-36869       Fixed an XSS risk when misconfigured Algebra filter displayed an error message
    TL-37228       Cherry-picked MDL-77187 Validate external method sort parameters

Improvements:

    TL-33639       Added the 'new tab' icon to the warning links in the confirm activity delete modal
    TL-36475       Improved description of Seminar "one email per day" setting

                   The description of the setting has been improved to indicate that it only
                   relates to legacy seminar notifications, and describes how attachments are sent
                   when using centralised notifications. The setting is now hidden when legacy
                   seminar notifications are disabled.


Bug fixes:

    TL-36042       Fixed inaccurate Seminar notification name

                   The name 'Facilitator sessions details changed' inaccurately described the
                   behaviour of this notification. The name has been changed to 'Facilitator
                   sessions date/time changed' to more accurately indicate what event will trigger
                   sending the notification.

    TL-36226       Fixed a bug where closed activity instances were still showing on the priority cards on the users activity page
    TL-36276       Fixed the display order of custom fields for the personal goals

                   Correctly aligned the order of goal custom fields to be the same on both the
                   edit view and the goal details page.

    TL-36397       Fixed a formatting issue for the 'noreplyname' string when sending emails
    TL-36660       Fixed error when configuring audience restrictions on the course section settings form

                   Before the patch users with the correct capabilities could not add access
                   restrictions by the audience for a section. 
                   
                   Now adding an access restriction for a section is consistent with adding a
                   restriction for an activity in the same course which is currently possible.

    TL-36826       Changed usages of array_key_exists to property_exists

                   array_key_exists() will also return {{true}} if {{key}} is a property
                   defined within an object given as {{{}array{}}}. This behaviour is deprecated
                   as of PHP 7.4.0, and removed as of PHP 8.0.0.
                   
                   For such a case, we changed array_key_exists() to property_exists().

    TL-36847       Added spacing above the 'Back to audiences' button when editing audience members
    TL-36895       Notification preferences and queued notifications belonging to a course are deleted when the course is deleted

                   Previously when deleting a course all related records in notification_preference
                   and notifiable_event_queue have not been deleted. This could lead to errors
                   during cron run as the context for the notification event queue records does not
                   exist anymore.
                   
                   This patch cleans up orphaned records during the upgrade and makes sure those
                   records get deleted during course deletion.

    TL-36975       Fixed an error with the Course Catalog when displaying a role which has a shortname longer than 30 characters

                   Previously a character limit for placeholder names in database queries existed.
                   This was only due for compatibility reasons with Oracle which Totara does not
                   support. The limit has been removed.

    TL-37139       Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
    TL-37153       Fixed notifications being sent twice if they were overridden in more than one context

                   If a notification was created in the higher context (such as at site-level), was
                   customised in more than one intermediate context (such as both course and
                   activity contexts) and the related notification event occurred in a lower
                   context (e.g. extended context from an activity) then the notification system
                   would send a notification for each of the customisations at the intermediate
                   levels (e.g. the notifications as they appear in both course and activity). This
                   has been fixed - now only one notification will be sent, which will use the
                   properties defined at the lowest context (e.g. activity context in this
                   example).

    TL-37208       Fixed error messages triggered during centralised notification tasks not showing debugging details

                   When debugging is enabled on the site any error triggered during the run of the
                   centralised notification scheduled tasks do not contain additional debugging
                   information.
                   
                   This has been changed to help identifying problems during the task runs.

    TL-37225       Fixed ical attachment not reset between notifications when SMTP session limit greater than 1

                   Under certain circumstances, it was possible for a seminar notification email to
                   contain the calendar invitation belonging to another user. This only occurred
                   when "SMTP session limit" was set to more than 1, two seminar notifications were
                   processed one after the other within one SMTP session (e.g. if the session limit
                   was set to 5 then both notifications would need to be processed in the same
                   batch of 5), the first notification related to a seminar event with only one
                   session, and the second notification related to an event with more than one
                   session.

    TL-37302       Updated the readme file with the correct MariaDB supported versions

Database upgrades:

    TL-36808       Allow memoization for Postgres 14.2 and above.

                   PostgreSQL 14 introduced memoization as a feature that can improve performance.
                   However with PostgreSQL versions 14.0 or 14.1 it would cause several Totara
                   queries to return incorrect results. Because of this a requirement was added for
                   PostgreSQL 14 that the enable_memoize flag be set to off.
                   
                   This has been fixed from PostgreSQL 14.2. With this patch in place the
                   enable_memoize=off setting is only required if you're using PostgreSQL 14.0 or
                   14.1.


Technical changes:

    TL-36403       Added 'mobile_coursecompat' property to the catalog_item GraphQL type, so it could be used in the mobile_findlearning_view_catalog GraphQL query

Library updates:

    TL-37326       Updated nyholm/psr7 library to 1.6.1

Release 16.13 (25th May 2023):

Security issues:

    TL-36538       Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
    TL-36869       Fixed an XSS risk when misconfigured Algebra filter displayed an error message
    TL-37228       Cherry-picked MDL-77187 Validate external method sort parameters

Improvements:

    TL-33639       Added the 'new tab' icon to the warning links in the confirm activity delete modal
    TL-36475       Improved description of Seminar "one email per day" setting

                   The description of the setting has been improved to indicate that it only
                   relates to legacy seminar notifications, and describes how attachments are sent
                   when using centralised notifications. The setting is now hidden when legacy
                   seminar notifications are disabled.


Bug fixes:

    TL-36042       Fixed inaccurate Seminar notification name

                   The name 'Facilitator sessions details changed' inaccurately described the
                   behaviour of this notification. The name has been changed to 'Facilitator
                   sessions date/time changed' to more accurately indicate what event will trigger
                   sending the notification.

    TL-36226       Fixed a bug where closed activity instances were still showing on the priority cards on the users activity page
    TL-36276       Fixed the display order of custom fields for the personal goals

                   Correctly aligned the order of goal custom fields to be the same on both the
                   edit view and the goal details page.

    TL-36397       Fixed a formatting issue for the 'noreplyname' string when sending emails
    TL-36660       Fixed error when configuring audience restrictions on the course section settings form

                   Before the patch users with the correct capabilities could not add access
                   restrictions by the audience for a section. 
                   
                   Now adding an access restriction for a section is consistent with adding a
                   restriction for an activity in the same course which is currently possible.

    TL-36826       Changed usages of array_key_exists to property_exists

                   array_key_exists() will also return {{true}} if {{key}} is a property
                   defined within an object given as {{{}array{}}}. This behaviour is deprecated
                   as of PHP 7.4.0, and removed as of PHP 8.0.0.
                   
                   For such a case, we changed array_key_exists() to property_exists().

    TL-36847       Added spacing above the 'Back to audiences' button when editing audience members
    TL-36895       Notification preferences and queued notifications belonging to a course are deleted when the course is deleted

                   Previously when deleting a course all related records in notification_preference
                   and notifiable_event_queue have not been deleted. This could lead to errors
                   during cron run as the context for the notification event queue records does not
                   exist anymore.
                   
                   This patch cleans up orphaned records during the upgrade and makes sure those
                   records get deleted during course deletion.

    TL-36975       Fixed an error with the Course Catalog when displaying a role which has a shortname longer than 30 characters

                   Previously a character limit for placeholder names in database queries existed.
                   This was only due for compatibility reasons with Oracle which Totara does not
                   support. The limit has been removed.

    TL-37139       Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
    TL-37153       Fixed notifications being sent twice if they were overridden in more than one context

                   If a notification was created in the higher context (such as at site-level), was
                   customised in more than one intermediate context (such as both course and
                   activity contexts) and the related notification event occurred in a lower
                   context (e.g. extended context from an activity) then the notification system
                   would send a notification for each of the customisations at the intermediate
                   levels (e.g. the notifications as they appear in both course and activity). This
                   has been fixed - now only one notification will be sent, which will use the
                   properties defined at the lowest context (e.g. activity context in this
                   example).

    TL-37208       Fixed error messages triggered during centralised notification tasks not showing debugging details

                   When debugging is enabled on the site any error triggered during the run of the
                   centralised notification scheduled tasks do not contain additional debugging
                   information.
                   
                   This has been changed to help identifying problems during the task runs.

    TL-37225       Fixed ical attachment not reset between notifications when SMTP session limit greater than 1

                   Under certain circumstances, it was possible for a seminar notification email to
                   contain the calendar invitation belonging to another user. This only occurred
                   when "SMTP session limit" was set to more than 1, two seminar notifications were
                   processed one after the other within one SMTP session (e.g. if the session limit
                   was set to 5 then both notifications would need to be processed in the same
                   batch of 5), the first notification related to a seminar event with only one
                   session, and the second notification related to an event with more than one
                   session.

    TL-37302       Updated the readme file with the correct MariaDB supported versions

Database upgrades:

    TL-36808       Allow memoization for Postgres 14.2 and above.

                   PostgreSQL 14 introduced memoization as a feature that can improve performance.
                   However with PostgreSQL versions 14.0 or 14.1 it would cause several Totara
                   queries to return incorrect results. Because of this a requirement was added for
                   PostgreSQL 14 that the enable_memoize flag be set to off.
                   
                   This has been fixed from PostgreSQL 14.2. With this patch in place the
                   enable_memoize=off setting is only required if you're using PostgreSQL 14.0 or
                   14.1.


Technical changes:

    TL-36403       Added 'mobile_coursecompat' property to the catalog_item GraphQL type, so it could be used in the mobile_findlearning_view_catalog GraphQL query

Library updates:

    TL-37326       Updated nyholm/psr7 library to 1.6.1

Release 15.19 (25th May 2023):

Important:

    TL-37167       Fixed LTI 1.3 external tool viewing not being logged and not recognised for completion

                   When launching an External tool activity based on a LTI 1.3 compatible provider
                   the viewing event did not get triggered. This resulted in no event log entry
                   being created and completion through the activity completion setting "Learner
                   must view this activity to complete it" not being recognised. This has now been
                   fixed.


Security issues:

    TL-36538       Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
    TL-36869       Fixed an XSS risk when misconfigured Algebra filter displayed an error message
    TL-37228       Cherry-picked MDL-77187 Validate external method sort parameters

Improvements:

    TL-33639       Added the 'new tab' icon to the warning links in the confirm activity delete modal

Bug fixes:

    TL-36042       Fixed inaccurate Seminar notification name

                   The name 'Facilitator sessions details changed' inaccurately described the
                   behaviour of this notification. The name has been changed to 'Facilitator
                   sessions date/time changed' to more accurately indicate what event will trigger
                   sending the notification.

    TL-36226       Fixed a bug where closed activity instances were still showing on the priority cards on the users activity page
    TL-36397       Fixed a formatting issue for the 'noreplyname' string when sending emails
    TL-36826       Changed usages of array_key_exists to property_exists

                   array_key_exists() will also return {{true}} if {{key}} is a property
                   defined within an object given as {{{}array{}}}. This behaviour is deprecated
                   as of PHP 7.4.0, and removed as of PHP 8.0.0.
                   
                   For such a case, we changed array_key_exists() to property_exists().

    TL-36847       Added spacing above the 'Back to audiences' button when editing audience members
    TL-36895       Made API for deleting notification records consistent with newer versions

                   The code which deletes notification records and which is used in newer versions
                   when deleting activities or courses has been made consistent. This ensures
                   customisations and future changes will work as expected when deleting records.

    TL-36975       Fixed an error with the Course Catalog when displaying a role which has a shortname longer than 30 characters

                   Previously a character limit for placeholder names in database queries existed.
                   This was only due for compatibility reasons with Oracle which Totara does not
                   support. The limit has been removed.

    TL-37139       Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
    TL-37153       Fixed notifications being sent twice if they were overridden in more than one context

                   If a notification was created in the higher context (such as at site-level), was
                   customised in more than one intermediate context (such as both course and
                   activity contexts) and the related notification event occurred in a lower
                   context (e.g. extended context from an activity) then the notification system
                   would send a notification for each of the customisations at the intermediate
                   levels (e.g. the notifications as they appear in both course and activity). This
                   has been fixed - now only one notification will be sent, which will use the
                   properties defined at the lowest context (e.g. activity context in this
                   example).

    TL-37208       Fixed error messages triggered during centralised notification tasks not showing debugging details

                   When debugging is enabled on the site any error triggered during the run of the
                   centralised notification scheduled tasks do not contain additional debugging
                   information.
                   
                   This has been changed to help identifying problems during the task runs.

    TL-37302       Updated the readme file with the correct MariaDB supported versions

Library updates:

    TL-37326       Updated nyholm/psr7 library to 1.6.1

Release 14.24 (25th May 2023):

Important:

    TL-37167       Fixed LTI 1.3 external tool viewing not being logged and not recognised for completion

                   When launching an External tool activity based on a LTI 1.3 compatible provider
                   the viewing event did not get triggered. This resulted in no event log entry
                   being created and completion through the activity completion setting "Learner
                   must view this activity to complete it" not being recognised. This has now been
                   fixed.


Security issues:

    TL-36538       Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
    TL-36869       Fixed an XSS risk when misconfigured Algebra filter displayed an error message
    TL-37228       Cherry-picked MDL-77187 Validate external method sort parameters

Improvements:

    TL-33639       Added the 'new tab' icon to the warning links in the confirm activity delete modal

Bug fixes:

    TL-36042       Fixed inaccurate Seminar notification name

                   The name 'Facilitator sessions details changed' inaccurately described the
                   behaviour of this notification. The name has been changed to 'Facilitator
                   sessions date/time changed' to more accurately indicate what event will trigger
                   sending the notification.

    TL-36161       Backported learning item visibility fixes

                   The totara_mobile_certification query now returns a 'viewable' flag for all
                   courses in certifications and programs

    TL-36397       Fixed a formatting issue for the 'noreplyname' string when sending emails
    TL-36826       Changed usages of array_key_exists to property_exists

                   array_key_exists() will also return {{true}} if {{key}} is a property
                   defined within an object given as {{{}array{}}}. This behaviour is deprecated
                   as of PHP 7.4.0, and removed as of PHP 8.0.0.
                   
                   For such a case, we changed array_key_exists() to property_exists().

    TL-36847       Added spacing above the 'Back to audiences' button when editing audience members
    TL-36895       Made API for deleting notification records consistent with newer versions

                   The code which deletes notification records and which is used in newer versions
                   when deleting activities or courses has been made consistent. This ensures
                   customisations and future changes will work as expected when deleting records.

    TL-37139       Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero
    TL-37153       Fixed notifications being sent twice if they were overridden in more than one context

                   If a notification was created in the higher context (such as at site-level), was
                   customised in more than one intermediate context (such as both course and
                   activity contexts) and the related notification event occurred in a lower
                   context (e.g. extended context from an activity) then the notification system
                   would send a notification for each of the customisations at the intermediate
                   levels (e.g. the notifications as they appear in both course and activity). This
                   has been fixed - now only one notification will be sent, which will use the
                   properties defined at the lowest context (e.g. activity context in this
                   example).

    TL-37208       Fixed error messages triggered during centralised notification tasks not showing debugging details

                   When debugging is enabled on the site any error triggered during the run of the
                   centralised notification scheduled tasks do not contain additional debugging
                   information.
                   
                   This has been changed to help identifying problems during the task runs.

    TL-37302       Updated the readme file with the correct MariaDB supported versions

Release 13.32 (25th May 2023):

Important:

    TL-37167       Fixed LTI 1.3 external tool viewing not being logged and not recognised for completion

                   When launching an External tool activity based on a LTI 1.3 compatible provider
                   the viewing event did not get triggered. This resulted in no event log entry
                   being created and completion through the activity completion setting "Learner
                   must view this activity to complete it" not being recognised. This has now been
                   fixed.


Security issues:

    TL-36538       Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
    TL-36869       Fixed an XSS risk when misconfigured Algebra filter displayed an error message
    TL-37228       Cherry-picked MDL-77187 Validate external method sort parameters

Bug fixes:

    TL-36042       Fixed inaccurate Seminar notification name

                   The name 'Facilitator sessions details changed' inaccurately described the
                   behaviour of this notification. The name has been changed to 'Facilitator
                   sessions date/time changed' to more accurately indicate what event will trigger
                   sending the notification.

    TL-36161       Backported learning item visibility fixes

                   The totara_mobile_certification query now returns a 'viewable' flag for all
                   courses in certifications and programs

    TL-36397       Fixed a formatting issue for the 'noreplyname' string when sending emails
    TL-36847       Added spacing above the 'Back to audiences' button when editing audience members
    TL-37139       Fixed 'Grade at time of completion' column showing empty for historic records when maxgrade for the course was zero

Release 12.53 (25th May 2023):

Security issues:

    TL-36538       Ensure return URLs that were previously validated with PARAM_URL are validated with PARAM_LOCALURL instead to prevent reflected XSS attack
    TL-36869       Fixed an XSS risk when misconfigured Algebra filter displayed an error message
    TL-37228       Cherry-picked MDL-77187 Validate external method sort parameters

Bug fixes:

    TL-36397       Fixed a formatting issue for the 'noreplyname' string when sending emails