Totara Release Notes

Totara Learn Evergreen-20181025, 11.8, 10.14, 9.25, 2.9.37, 2.7.45, 2.6.62, 2.5.68

 
Riana Rossouw
Totara Learn Evergreen-20181025, 11.8, 10.14, 9.25, 2.9.37, 2.7.45, 2.6.62, 2.5.68
by Riana Rossouw - Wednesday, 24 October 2018, 6:27 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 bug fixes and improvements.

Kind regards
Riana Rossouw

Release Evergreen (25th October 2018):

Key:           + Evergreen only

Security issues:

    TL-18957       Fixed permission checks for learning plans

                   Prior to this patch all plan templates were being checked to see if a user
                   had a permission (e.g. update plan). Now only the template that the plan is
                   based off is checked for the permission.


New features:

    TL-16649   +   Added reusable select and region UI components

                   The new select components are:
                    * Multi select - Similar to a multiple select and can return multiple
                   options
                    * Single select tree - Similar to a single select dropdown that allows
                   nestable options
                    * Text search - A stylised text input field with search icon
                   
                   These are designed for use inside the added region container which has
                   'clear all' functionality. Initially these will be used in the new
                   catalogue.

    TL-17603   +   Added reusable UI grid component

                   Added a reusable UI component for displaying content in a grid format. The
                   component includes events for setting an active tile state based on user
                   clicks.

    TL-19014       Implemented new capabilities for controlling the access to SCORM content

                   Previously all users who could enter a course were able to launch SCORM
                   activities.
                   The only way to limit access was to make the activity hidden and then to
                   use the moodle/course:viewhiddenactivities capability to grant access.
                   
                   Two new capabilities have been added to allow better control of access to
                   SCORM activities.
                    * mod/scorm:view
                    * mod/scorm:launch


Improvements:

    TL-6152    +   Added an RPL note column to the Course completion report source

                   A new column "RPL note" has been added to the Course completion report
                   source.
                   This column contains the note provided when users were manually awarded an
                   RPL completion.
                   If it is not an RPL completion, or if no note was provided then the column
                   will be empty.
                   The new column was added to the course completion report source only.

    TL-8092    +   Added a 'Date Completed' filter to the program overview report source
    TL-12955   +   Added a dynamic audience rule for user's authentication method
    TL-17580   +   Refactored and simplified the Flex icon AMD JavaScript module
    TL-17586       Greatly improved the performance of the update competencies scheduled task

                   The scheduled task to reaggregate the competencies
                   "\totara_hierarchy\task\update_competencies_task" was refactored to fix a
                   memory leak. The scheduled task now loops through the users and loads and
                   reaggregates items per user and not in one huge query as before. This
                   minimises impact on memory but increases number of queries and runtime.

    TL-17719   +   Converted front page content to use the new centre block region

                   The following blocks have been introduced for backward compatibility:
                    * Course progress report
                    * Courses and categories
                    * Course search
                   
                   "Course progress report" and "Courses and categories" blocks are disabled
                   by default in new installations, and only enabled on upgrade if the
                   respective front page content settings were enabled.

    TL-17835   +   Improved calendar popover

                   Previously this was using a YUI module. This has now been updated to use
                   the Bootstrap popover.

    TL-17850   +   Improved colour of text input placeholders in Totara forms
    TL-17974   +   Site-wide settings for HR Import can now be overridden by element

                   The HR Import page for 'General settings' has been renamed to 'Default
                   settings'. This page includes the same settings as previously, but will
                   also list which elements are using a given setting area.
                   
                   Element setting pages now contain settings relating to file access,
                   notifications and scheduling. These settings allow you to select the
                   default settings to apply or to override them with values that will apply
                   to that element.
                   
                   Following the upgrade, values from 'General settings' will remain unchanged
                   in the 'Default settings' page. Any enabled elements will use the default
                   settings until changed.

    TL-18554   +   Introduced common block settings and API to manage those

                   The idea of the common block settings API is to allow core developers to
                   have predictable common settings storage for all the blocks and if
                   necessary,  introduce properties which cover all block types without
                   interfering with settings provided the by third-party block developers.
                   It also includes a few minor changes for block configuration: hiding,
                   docking and show header/border settings now use checkboxes instead of radio
                   buttons. Moreover, to provide better backwards compatibility a setting
                   "Override default block title" has been introduced and unless it is checked
                   the block retains pre-patch behaviour for the title supplied by the block
                   developer.

    TL-18565       [Evergreen 12.0]Moved 'Override user conflicts' action out of the seminar event setting page and into a 'save' modal dialog[Evergreen 12.0][9.25 10.14 11.8]Improved the wording around the 'Override user conflicts' settings page in seminars[9.25 10.14 11.

                   The 'Override user scheduling conflicts' setting was initially intended for
                   use with new events where the assigned roles resulted in conflicts with
                   existing events. It was not originally designed to work with existing
                   events. 
                   [Evergreen 12.0]We improved the wording to clarify this feature without
                   further changes in the UI and workflow.[Evergreen 12.0]  
                   [9.25 10.14 11.8] We changed the event configuration flow by moving the
                   'override' action out of the settings page and into the 'save' modal dialog
                   where it belongs. So in essence you will be able override conflicts upon
                   creation and edit.[9.25 10.14 11.8]

    TL-18575   +   A limitation of 255 characters is now consistently applied when validating course shortname

                   The course shortname field in the database has always been 255 characters.
                   However the course creation form arbitrarily limited course shortname
                   length to 100 characters.
                   As of this change the course shortname form now checks that the
                   user-entered value is no longer than 255 characters, matching the database
                   limitation.

    TL-18666   +   Improved AMD module loading by converting the core/first AMD module to use RequireJS bundling instead
    TL-18713   +   Reduced space between the main navigation and blocks when there are no breadcrumbs
    TL-18757       Send notifications to new appraisees for an already activated appraisal

                   Previously the appraisals module only sent out notifications to learners
                   when the appraisal was activated. If new learners are added to the
                   appraisal after activation, they did not receive any notification.
                   
                   With this patch, notifications are sent out when new learners are added to
                   the appraisal after activation.
                   [10.14, 11.8]
                   If you need the original behaviour (ie no notification for new appraisees),
                   add this line to config.php:
                   $CFG->legacy_appraisal_activation_message_behavior = true;[10.14, 11.8]

    TL-18770       Disabled the site policy translation interface language selector when only a single language is available
    TL-18852       Database table prefix is now required for all new installations

                   Previously MySQL did not require database prefix to be set in config.php,
                   since MySQL 8.0 the prefix is however required. To prevent problems in
                   future upgrades Totara now requires table prefix for all databases.

    TL-18896   +   Date pickers in forms now use the same order of day, month and year fields as current language full date and time display format
    TL-18909       Fixed compatibility issues with PHP 7.3RC1
    TL-18929   +   Added two indexes to speed up queries accessing the block_totara_stats table

                   In quite a few places throughout the code we query the table
                   'block_totara_stats' using two combinations of columns. In adding indexes
                   on these column combinations query speed will be improved, especially with
                   a lot of entries in the table.

    TL-18978   +   Improved the validation display for dynamic audience rules that use a date selector
    TL-18983       Added workaround for missing support for PDF embedding on iOS devices

                   Web browsers on iOS devices have very limited support for embedding PDF
                   files – for example, only the first page is displayed and users cannot
                   scroll to next page. A new workaround was added to PDF embedding in File
                   resource to allow iPhone and iPad users to open a PDF in full-screen mode
                   after clicking on an embedded PDF.

    TL-18998       Improved performance of language pack installation by changing to gzip

                   Language pack installation and updates now utilise gzip instead of zip.
                   Extract of gzip files is much quicker than zip files within Totara.
                   Manual installation and updates using zip files are still supported and
                   will continue to operate.
                   All online installations and updates will now use tgz files exclusively.

    TL-19053   +   Improved the performance of full text searches within PostgreSQL
    TL-19066   +   Database table context_temp is now a  real temporary table

                   The original context_temp table has now been dropped.
                   This table was only ever intended as an internal store, and should not have
                   been used by anything other than the access API.

    TL-19084       Enrolment type column in course completion report source is now using subqueries to improve compatibility of other general columns in the same report

Bug fixes:

    TL-14204       Updated the inline helper text for course completion tracking

                   Prior to this patch, there was a misleading inline helper text on the
                   course view page next to 'Your progress'. 
                   With this patch, the inline helper text is updated to reflect with the
                   change of the completion icon.

    TL-16539       Fixed capacity reporting when viewing Seminar event information on the course page

                   Previously a wait-list seminar event with 1 booked user and 1 wait-listed
                   user reported the capacity wrongly as '2 wait-listed'.
                   With this patch, the capacity is now reported correctly.

    TL-17584       Fixed the default heading location for Featured links block gallery tiles

                   Heading location for Gallery tiles now defaults to 'Top' like the default
                   tile. Any tiles created without setting the heading location will be set to
                   'Top'.

    TL-17629       Fixed failures in the Seminar send_notification_task when performed under high load

                   Some sites with large number of Seminar activities (100 000+) experienced
                   'out of memory' failures during execution of the scheduled task
                   (send_notifications_task). This task has now been optimised to use less
                   memory.

    TL-17652   +   Removed 'Update activities' checkbox from Seminar notification template form when new customer notification template is added
    TL-17658       MSSQL 2016 and below now correctly sort aggregated course columns in the program overview report

                   The program overview report was using SQL group_concat to ensure
                   concatenated columns such as course name, and course status were ordered
                   correctly and consistently.
                   However the group_concat functionality in MSSQL 2016 and below does not
                   support sorting, and there is no alternative.
                   The fix for this was to shift sorting from the database to Totara if the
                   site is running on MSSQL 2016 or below.
                   This will have a small impact on performance, but will ensure for those
                   sites that the columns are correctly and consistently sorted.
                   Our recommendation is to upgrade MSSQL 2017 is possible.

    TL-17773       Fixed the rendering of visibility controls within the course management interface for hidden categories

                   The issue happened within 'Manage courses and categories' page alongside
                   the enabled setting 'Audience visibility'.
                   
                   When rendering the page, the course checks for the setting 'Audience
                   visible' (global) before 'Visible' (module) setting, to determine whether
                   the 'Eye Icon' should be marked as hidden or not.
                   
                   Previously, when the 'Course category' was marked as hidden, all the
                   courses within that category were also marked as hidden. However, after
                   reloading the page, these courses were not marked as hidden. This was due
                   to the fact that the same behaviour of rendering the page was not applied
                   to AJAX interface.
                   
                   With this the patch, the behaviour applied when rendering the page is now
                   also applied to the AJAX interface and therefore results in the same
                   behaviour.

    TL-17919   +   Fixed the display of the main region in core themes
    TL-18706   +   Fixed the incompatible version message shown when attempting to restore an old backup

                   The "This backup file has been created with Totara ..." error message was
                   incorrectly referring to Moodle version instated of Totara version

    TL-18727   +   Fixed galleries in the featured links block not being reinstated after update
    TL-18776       Fixed a bug causing the Atto editor to lose track of the user's selection in IE11 and Edge

                   Prior this change if heavily editing content in the Atto editor will
                   occasionally result in the wrong content being formatted.
                   This occurred only when formatting selected text, and occurred because the
                   browser would lose track of the user's selection.
                   This only affected IE11 and Edge.

    TL-18790       Fixed the Organisation content restriction within the 'Record of Learning: Certifications' report source

                   Before: within a report using 'Record of Learning: Certifications' source
                   and content restriction as 'Staff at or below any of the user's assigned
                   organisations', the User's Organisation(s) filter had an issue with its SQL
                   query.
                   
                   After the patch: this issue is now fixed, the Organisations will display,
                   if there are any.

    TL-18802       Changed the date format of Session Date related columns within Seminar Sign-ups report source

                   Previously the report columns 'Session Start' and 'Session Finish' were
                   formatted differently than the 'Session Start (linked to activity)' column.
                   These columns are now formatted consistently.

    TL-18839       The 'Blocks editing on' button has been put back onto the 'Browse list of users' report page

                   Prior to this page being converted to an embedded report it had a button to
                   turn editing on.
                   That button was unintentionally removed during the conversion.
                   It has now been put back.

    TL-18846       User's preference 'email bounce count' is reset when user requests to change their email address

                   Prior to this patch, when the user requested to change their email address
                   and the user's email bounce count preference reached the threshold, the
                   confirmation email could not be sent to the user.
                   
                   With this patch, given the same scenario, the email will be sent to the
                   user for the confirmation of change request.

    TL-18864       Fixed the population of the template field value when editing a Seminar's notification

                   Prior to this patch, when adding a new notification using a custom
                   notification template the user was not able to see the Template field
                   populated when editing it. Now, the field Template will be populated with
                   the right value used for the notification.

    TL-18866       Fixed the way the add-on list is displayed on the Totara registration page

                   Prior to this patch, on the Totara registration page, all the add-on
                   components were rendered without spaces separating them, preventing the
                   text from wrapping and forcing the need for horizontal scrolling in the
                   browser. 
                   
                   After the patch, there is a word wrap in place to make the text fit on the
                   screen.

    TL-18867       Fixed exported status of cancelled events in the Seminar attendance report
    TL-18880       Fixed Seminar 'Job assignment on sign up' column to exclude html text when exporting to other format
    TL-18887       Fixed resetting of course type when uploading courses using a CSV file that does not contain the column

                   This is a regression from TL-17920 which added Course type as a supported
                   column when uploading courses via CSV.
                   Totara 10.12, 10.13, 11.6, and 11.7 are affected.

    TL-18897       Added a link on Appraisal stage interfaces for navigation back to the Appraisal
    TL-18904   +   Fixed up the context level of the totara/contentmarketplace:add capability

                   It now shares the same configuration as the moodle/course:create
                   capability.
                   
                   Coding style within the component and single plugin was tidied up at the
                   same time.

    TL-18908       Fixed window resize functionality when viewing the grader report
    TL-18922       Fixed the overlapping text within Select Assets dialog box
    TL-18941       Changed z-index of Totara dialogs to match Bootstrap 3 modal levels

                   Previously the modal had a z-index of 1 (and the backdrop 0) which caused
                   some content to be displayed above them. This sets the level to 1050 (with
                   the backdrop at 1040).
                    
                   This will require CSS to be regenerated for themes that use LESS
                   inheritance.

    TL-18942       Fixed the email subject line format for emails sent from the Certificate module

                   Prior to this change the subject lines used for emails sent by the
                   Certificate module were being formatted for HTML, not for emails.
                   This led to characters being escaped and converted to entities.
                   As of this fix the subject is formatted correctly, and should no longer end
                   up with HTML entities within it.

    TL-18959       Fixed the double escaping of Report names when viewing the list of my reports

                   The report name was being passed once through format_string() and once
                   through s() when displaying the list of reports to the user on the My
                   reports page.
                   The fix for this change involved modifying templates, see
                   totara/core/upgrade.txt for technical details.

    TL-18965       Changed the embedded URL of User's name within Seminar's event Cancellation
    TL-19009       Fixed incorrectly deprecated filter language strings on "Bulk user actions" page

                   Strings datelabelisafter, datelabelisbefore, datelabelisbetween were
                   deprecated in Totara 10.0 while still being used on the "Bulk user
                   actions" page. This has now been corrected and these strings were removed
                   from the deprecated list.

    TL-19010       Removed incorrectly deprecated function message_page_type_list() from the deprecatedlib.php
    TL-19017       Added styles to display Appraisal content correctly on mobile devices

                   Added styles for correctly displaying an individual Appraisal selected from
                   the 'My appraisals' page on mobile devices. Previously content had layout
                   issues and was incorrectly cropped.

    TL-19018       Fixed problems with forced redirect for new required custom profile fields
    TL-19030       Fixed the duplicate submit request for the course page when enroling

                   Double clicking the Enrol button on courses with self enrolment enabled no
                   longer submits duplicate requests.

    TL-19043   +   Fixed php undefined property notice in assignment grading when changing 'Enrolment ends' to a date in the past
    TL-19046       Course completion's cache is now being cleared after user deletes the course completion

                   Prior to this patch, when a manager with the
                   'totara/program:markstaffcoursecomplete' capability, marked a course as a
                   incomplete on a user's 'Record of Learning > Programs' page, the cache
                   would not be fully cleared. Causing the page to still render with the
                   course marked as complete. 
                   With this patch, given the same scenario, the course completion cache of a
                   user will be reset when the manager removes the course completion for that
                   course. This will result in the completion being rendered correctly.

    TL-19072       Fixed wait-listed attendees not being automatically added to the Seminar's attendees list after a reservation is deleted

API changes:

    TL-6630    +   Added functionality to perform capability checks directly against the database

                   A new get_has_capability_sql() function has been introduced that returns an
                   SQL snippet to resolve capability checks against the database.
                   Among other uses this allows Totara to resolve visibility state much more
                   efficiently than before without sacrificing accuracy.
                   
                   As part of this change a new table containing flattened context data will
                   be created and maintained.
                   There are a couple of important things to note about this:
                   
                   During upgrade to this release the table will be created and populated.
                   This upgrade step could take several minutes on large sites.
                   The table is kept up-to-date automatically by the access API. If you have
                   third party plugins or customisations that are directly manipulating access
                   data then you will need to review these.
                   We have extensively tested the performance of this change during our QA
                   process and are confident with the results. If you experience any problems
                   please let us know immediately.

    TL-15818   +   Refactored Seminar code to allow multi-language notifications and consistent booking state processing

                   Multi-language:
                   Added support for the "Multi-Language Content" filter plugin in Seminar
                   notifications. Notification content will now be filtered according to each
                   recipient's language settings.
                   
                   Booking system:
                   The main target of refactoring was to bring consistency to the bookings
                   state changes throughout all related code, leading to predictable and
                   controllable rules for each state transition. For this purpose we have
                   implemented a simplified Finite State Machine with a definition for each
                   state, following states and rules that must be matched for state transition
                   to happen. This will greatly reduce complexity during further changes to
                   how booking states are managed.
                   
                   Despite our efforts to maintain existing behaviour, some inconsistencies in
                   old code forced some minor changes in behaviour. We have identified the
                   following changes:
                   
                   1) Enable waitlist and overbooking - Previously when a Seminar's event had
                   the setting 'Enable Waitlist' enabled, then all the attendees that got
                   signed up by an admin or any user that has capability would have a status
                   as booked. Now users will be booked until the event's room capacity has
                   been reached, the rest of the users will be added to the waitlist. Later on
                   an admin or another user with the "mod/facetoface:signupwaitlist"
                   capability will be able to confirm users on the waitlist, overbooking the
                   event.
                   
                   2) Events without session - Administrators could previously book users onto
                   events without sessions by confirming users on the waitlist. Now as the
                   booked state requires a session to be set, this attempt will return error
                   until a session is created.
                   
                   3) Action buttons labels -  Removed some inconsistencies with "Sign-up",
                   "Join waitlist" buttons and added "Request approval" when approval is
                   required. Previously calendar and upcoming events block would display a
                   "sign-up" button, while the sign-up page would offer "Join waitlist". These
                   inconsistencies were largely removed by using the same prediction logic for
                   all three source of actions (course view, calendar, and sign-up page).
                   Also, when approval is required, the user is now properly informed that
                   approval will be required.
                   
                   API changes:
                   The API has been significantly changed. We have moved to a proper class
                   structure for all Seminar entities and their relationships. Along with that
                   we didn't change the database structure, except for some varchar fields
                   that were converted to text to allow the multi-language filter to work
                   properly. We have also minimised front-end changes as much as possible. All
                   functions that were likely to be used by third-party code have been kept in
                   the code base and deprecated. Deprecated functions from main lib.php file
                   were moved to deprecatedlib.php file (which is required by lib.php file).
                   
                   In order to reduce API changes we've deprecated mostly functions that were
                   relevant to state machine (booking states), and functions that were
                   completely covered by OOP (e.g. rooms, assets, reservations, calendar).

    TL-18845       Removed a superfluous unique index on the job_assignment.id column
    TL-18899   +   Added additional PHPdocs and return value declarations in workflow classes

                   The following method signatures have been modified to enforce the expected
                   return types:
                    * workflow_manager\base->add_workflow_manager_form_elements() returns
                   void
                    * workflow_manager\base->split_classname() returns array
                    * workflow_manager\base->get_workflow() can no longer return null
                    * workflow_manager\base->set_params() returns void
                    * workflow\base->__construct() returns void
                    * workflow\base->split_classname() returns array
                    * workflow\base->add_workflow_form_elements() returns void
                    * workflow\base->define_form() returns void
                    * workflow\base->process_form() returns void
                    * workflow\base->enable() returns void
                    * workflow\base->disable() returns void
                    * workflow\base->set_params() returns void
                    * workflow\base->get_workflow_manager_data() returns array
                   
                   3rd party workflow and workflow manager classes which extend the base
                   classes will need to update their message signatures, but behaviour is
                   unchanged.
                   
                   In addition:
                    * workflow\base->get_form_name() is now final
                   
                    

    TL-18921   +   Removed the Memcache cache store from core

                   Not to be confused with the Memcached cache store.
                   The Memcache PHP extension is not compatible with PHP7, and as such the
                   Memcache cache store could not be used.
                   It has now been removed from core.
                   
                   If you are currently using the Memcache cache store and plan to upgrade in
                   future, this may be an issue.

    TL-18927       Totara form load deferred object now resolves after the form initialise JavaScript is called

                   Previously, the Totara form initialise code was run after the load deferred
                   object had been resolved. This meant that calls to getFormInstance(formid)
                   would return null on load.done(), and not the form that was requested.

    TL-18944   +   MDL-53848: Added hideIf functionality to Moodle forms

                   Elements can now be hidden based on the value of another element. Usage
                   matches that of the disabledIf functionality that was already available in
                   the Moodle forms.

    TL-18985       Unit tests may now override lang strings

Release 11.8 (25th October 2018):


Security issues:

    TL-18957       Fixed permission checks for learning plans

                   Prior to this patch all plan templates were being checked to see if a user
                   had a permission (e.g. update plan). Now only the template that the plan is
                   based off is checked for the permission.


New features:

    TL-19014       Implemented new capabilities for controlling the access to SCORM content

                   Previously all users who could enter a course were able to launch SCORM
                   activities.
                   The only way to limit access was to make the activity hidden and then to
                   use the moodle/course:viewhiddenactivities capability to grant access.
                   
                   Two new capabilities have been added to allow better control of access to
                   SCORM activities.
                    * mod/scorm:view
                    * mod/scorm:launch


Improvements:

    TL-17586       Greatly improved the performance of the update competencies scheduled task

                   The scheduled task to reaggregate the competencies
                   "\totara_hierarchy\task\update_competencies_task" was refactored to fix a
                   memory leak. The scheduled task now loops through the users and loads and
                   reaggregates items per user and not in one huge query as before. This
                   minimises impact on memory but increases number of queries and runtime.

    TL-18565       [Evergreen 12.0]Moved 'Override user conflicts' action out of the seminar event setting page and into a 'save' modal dialog[Evergreen 12.0][9.25 10.14 11.8]Improved the wording around the 'Override user conflicts' settings page in seminars[9.25 10.14 11.

                   The 'Override user scheduling conflicts' setting was initially intended for
                   use with new events where the assigned roles resulted in conflicts with
                   existing events. It was not originally designed to work with existing
                   events. 
                   [Evergreen 12.0]We improved the wording to clarify this feature without
                   further changes in the UI and workflow.[Evergreen 12.0]  
                   [9.25 10.14 11.8] We changed the event configuration flow by moving the
                   'override' action out of the settings page and into the 'save' modal dialog
                   where it belongs. So in essence you will be able override conflicts upon
                   creation and edit.[9.25 10.14 11.8]

    TL-18757       Send notifications to new appraisees for an already activated appraisal

                   Previously the appraisals module only sent out notifications to learners
                   when the appraisal was activated. If new learners are added to the
                   appraisal after activation, they did not receive any notification.
                   
                   With this patch, notifications are sent out when new learners are added to
                   the appraisal after activation.
                   [10.14, 11.8]
                   If you need the original behaviour (ie no notification for new appraisees),
                   add this line to config.php:
                   $CFG->legacy_appraisal_activation_message_behavior = true;[10.14, 11.8]

    TL-18770       Disabled the site policy translation interface language selector when only a single language is available
    TL-18852       Database table prefix is now required for all new installations

                   Previously MySQL did not require database prefix to be set in config.php,
                   since MySQL 8.0 the prefix is however required. To prevent problems in
                   future upgrades Totara now requires table prefix for all databases.

    TL-18909       Fixed compatibility issues with PHP 7.3RC1
    TL-18983       Added workaround for missing support for PDF embedding on iOS devices

                   Web browsers on iOS devices have very limited support for embedding PDF
                   files – for example, only the first page is displayed and users cannot
                   scroll to next page. A new workaround was added to PDF embedding in File
                   resource to allow iPhone and iPad users to open a PDF in full-screen mode
                   after clicking on an embedded PDF.

    TL-18998       Improved performance of language pack installation by changing to gzip

                   Language pack installation and updates now utilise gzip instead of zip.
                   Extract of gzip files is much quicker than zip files within Totara.
                   Manual installation and updates using zip files are still supported and
                   will continue to operate.
                   All online installations and updates will now use tgz files exclusively.

    TL-19084       Enrolment type column in course completion report source is now using subqueries to improve compatibility of other general columns in the same report

Bug fixes:

    TL-14204       Updated the inline helper text for course completion tracking

                   Prior to this patch, there was a misleading inline helper text on the
                   course view page next to 'Your progress'. 
                   With this patch, the inline helper text is updated to reflect with the
                   change of the completion icon.

    TL-16539       Fixed capacity reporting when viewing Seminar event information on the course page

                   Previously a wait-list seminar event with 1 booked user and 1 wait-listed
                   user reported the capacity wrongly as '2 wait-listed'.
                   With this patch, the capacity is now reported correctly.

    TL-17584       Fixed the default heading location for Featured links block gallery tiles

                   Heading location for Gallery tiles now defaults to 'Top' like the default
                   tile. Any tiles created without setting the heading location will be set to
                   'Top'.

    TL-17629       Fixed failures in the Seminar send_notification_task when performed under high load

                   Some sites with large number of Seminar activities (100 000+) experienced
                   'out of memory' failures during execution of the scheduled task
                   (send_notifications_task). This task has now been optimised to use less
                   memory.

    TL-17658       MSSQL 2016 and below now correctly sort aggregated course columns in the program overview report

                   The program overview report was using SQL group_concat to ensure
                   concatenated columns such as course name, and course status were ordered
                   correctly and consistently.
                   However the group_concat functionality in MSSQL 2016 and below does not
                   support sorting, and there is no alternative.
                   The fix for this was to shift sorting from the database to Totara if the
                   site is running on MSSQL 2016 or below.
                   This will have a small impact on performance, but will ensure for those
                   sites that the columns are correctly and consistently sorted.
                   Our recommendation is to upgrade MSSQL 2017 is possible.

    TL-17773       Fixed the rendering of visibility controls within the course management interface for hidden categories

                   The issue happened within 'Manage courses and categories' page alongside
                   the enabled setting 'Audience visibility'.
                   
                   When rendering the page, the course checks for the setting 'Audience
                   visible' (global) before 'Visible' (module) setting, to determine whether
                   the 'Eye Icon' should be marked as hidden or not.
                   
                   Previously, when the 'Course category' was marked as hidden, all the
                   courses within that category were also marked as hidden. However, after
                   reloading the page, these courses were not marked as hidden. This was due
                   to the fact that the same behaviour of rendering the page was not applied
                   to AJAX interface.
                   
                   With this the patch, the behaviour applied when rendering the page is now
                   also applied to the AJAX interface and therefore results in the same
                   behaviour.

    TL-18776       Fixed a bug causing the Atto editor to lose track of the user's selection in IE11 and Edge

                   Prior this change if heavily editing content in the Atto editor will
                   occasionally result in the wrong content being formatted.
                   This occurred only when formatting selected text, and occurred because the
                   browser would lose track of the user's selection.
                   This only affected IE11 and Edge.

    TL-18790       Fixed the Organisation content restriction within the 'Record of Learning: Certifications' report source

                   Before: within a report using 'Record of Learning: Certifications' source
                   and content restriction as 'Staff at or below any of the user's assigned
                   organisations', the User's Organisation(s) filter had an issue with its SQL
                   query.
                   
                   After the patch: this issue is now fixed, the Organisations will display,
                   if there are any.

    TL-18802       Changed the date format of Session Date related columns within Seminar Sign-ups report source

                   Previously the report columns 'Session Start' and 'Session Finish' were
                   formatted differently than the 'Session Start (linked to activity)' column.
                   These columns are now formatted consistently.

    TL-18839       The 'Blocks editing on' button has been put back onto the 'Browse list of users' report page

                   Prior to this page being converted to an embedded report it had a button to
                   turn editing on.
                   That button was unintentionally removed during the conversion.
                   It has now been put back.

    TL-18846       User's preference 'email bounce count' is reset when user requests to change their email address

                   Prior to this patch, when the user requested to change their email address
                   and the user's email bounce count preference reached the threshold, the
                   confirmation email could not be sent to the user.
                   
                   With this patch, given the same scenario, the email will be sent to the
                   user for the confirmation of change request.

    TL-18864       Fixed the population of the template field value when editing a Seminar's notification

                   Prior to this patch, when adding a new notification using a custom
                   notification template the user was not able to see the Template field
                   populated when editing it. Now, the field Template will be populated with
                   the right value used for the notification.

    TL-18866       Fixed the way the add-on list is displayed on the Totara registration page

                   Prior to this patch, on the Totara registration page, all the add-on
                   components were rendered without spaces separating them, preventing the
                   text from wrapping and forcing the need for horizontal scrolling in the
                   browser. 
                   
                   After the patch, there is a word wrap in place to make the text fit on the
                   screen.

    TL-18867       Fixed exported status of cancelled events in the Seminar attendance report
    TL-18869       Fixed error message display after LDAP authentication plugin settings form is submitted
    TL-18880       Fixed Seminar 'Job assignment on sign up' column to exclude html text when exporting to other format
    TL-18887       Fixed resetting of course type when uploading courses using a CSV file that does not contain the column

                   This is a regression from TL-17920 which added Course type as a supported
                   column when uploading courses via CSV.
                   Totara 10.12, 10.13, 11.6, and 11.7 are affected.

    TL-18897       Added a link on Appraisal stage interfaces for navigation back to the Appraisal
    TL-18908       Fixed window resize functionality when viewing the grader report
    TL-18922       Fixed the overlapping text within Select Assets dialog box
    TL-18941       Changed z-index of Totara dialogs to match Bootstrap 3 modal levels

                   Previously the modal had a z-index of 1 (and the backdrop 0) which caused
                   some content to be displayed above them. This sets the level to 1050 (with
                   the backdrop at 1040).
                    
                   This will require CSS to be regenerated for themes that use LESS
                   inheritance.

    TL-18942       Fixed the email subject line format for emails sent from the Certificate module

                   Prior to this change the subject lines used for emails sent by the
                   Certificate module were being formatted for HTML, not for emails.
                   This led to characters being escaped and converted to entities.
                   As of this fix the subject is formatted correctly, and should no longer end
                   up with HTML entities within it.

    TL-18959       Fixed the double escaping of Report names when viewing the list of my reports

                   The report name was being passed once through format_string() and once
                   through s() when displaying the list of reports to the user on the My
                   reports page.
                   The fix for this change involved modifying templates, see
                   totara/core/upgrade.txt for technical details.

    TL-18965       Changed the embedded URL of User's name within Seminar's event Cancellation
    TL-18981       Fixed aggregation of a learner's course progress after use of completion editor

                   When the completion editor is used to mark a course complete for a specific
                   learner, the progress bar in the Record of learning is now updated to
                   indicate that the learner has completed the course.

    TL-19009       Fixed incorrectly deprecated filter language strings on "Bulk user actions" page

                   Strings datelabelisafter, datelabelisbefore, datelabelisbetween were
                   deprecated in Totara 10.0 while still being used on the "Bulk user
                   actions" page. This has now been corrected and these strings were removed
                   from the deprecated list.

    TL-19010       Removed incorrectly deprecated function message_page_type_list() from the deprecatedlib.php
    TL-19017       Added styles to display Appraisal content correctly on mobile devices

                   Added styles for correctly displaying an individual Appraisal selected from
                   the 'My appraisals' page on mobile devices. Previously content had layout
                   issues and was incorrectly cropped.

    TL-19018       Fixed problems with forced redirect for new required custom profile fields
    TL-19030       Fixed the duplicate submit request for the course page when enroling

                   Double clicking the Enrol button on courses with self enrolment enabled no
                   longer submits duplicate requests.

    TL-19046       Course completion's cache is now being cleared after user deletes the course completion

                   Prior to this patch, when a manager with the
                   'totara/program:markstaffcoursecomplete' capability, marked a course as a
                   incomplete on a user's 'Record of Learning > Programs' page, the cache
                   would not be fully cleared. Causing the page to still render with the
                   course marked as complete. 
                   With this patch, given the same scenario, the course completion cache of a
                   user will be reset when the manager removes the course completion for that
                   course. This will result in the completion being rendered correctly.

    TL-19072       Fixed wait-listed attendees not being automatically added to the Seminar's attendees list after a reservation is deleted

API changes:

    TL-18845       Removed a superfluous unique index on the job_assignment.id column
    TL-18927       Totara form load deferred object now resolves after the form initialise JavaScript is called

                   Previously, the Totara form initialise code was run after the load deferred
                   object had been resolved. This meant that calls to getFormInstance(formid)
                   would return null on load.done(), and not the form that was requested.

    TL-18985       Unit tests may now override lang strings

Release 10.14 (25th October 2018):


Security issues:

    TL-18957       Fixed permission checks for learning plans

                   Prior to this patch all plan templates were being checked to see if a user
                   had a permission (e.g. update plan). Now only the template that the plan is
                   based off is checked for the permission.


Improvements:

    TL-17586       Greatly improved the performance of the update competencies scheduled task

                   The scheduled task to reaggregate the competencies
                   "\totara_hierarchy\task\update_competencies_task" was refactored to fix a
                   memory leak. The scheduled task now loops through the users and loads and
                   reaggregates items per user and not in one huge query as before. This
                   minimises impact on memory but increases number of queries and runtime.

    TL-18565       [Evergreen 12.0]Moved 'Override user conflicts' action out of the seminar event setting page and into a 'save' modal dialog[Evergreen 12.0][9.25 10.14 11.8]Improved the wording around the 'Override user conflicts' settings page in seminars[9.25 10.14 11.

                   The 'Override user scheduling conflicts' setting was initially intended for
                   use with new events where the assigned roles resulted in conflicts with
                   existing events. It was not originally designed to work with existing
                   events. 
                   [Evergreen 12.0]We improved the wording to clarify this feature without
                   further changes in the UI and workflow.[Evergreen 12.0]  
                   [9.25 10.14 11.8] We changed the event configuration flow by moving the
                   'override' action out of the settings page and into the 'save' modal dialog
                   where it belongs. So in essence you will be able override conflicts upon
                   creation and edit.[9.25 10.14 11.8]

    TL-18757       Send notifications to new appraisees for an already activated appraisal

                   Previously the appraisals module only sent out notifications to learners
                   when the appraisal was activated. If new learners are added to the
                   appraisal after activation, they did not receive any notification.
                   
                   With this patch, notifications are sent out when new learners are added to
                   the appraisal after activation.
                   [10.14, 11.8]
                   If you need the original behaviour (ie no notification for new appraisees),
                   add this line to config.php:
                   $CFG->legacy_appraisal_activation_message_behavior = true;[10.14, 11.8]

    TL-18852       Database table prefix is now required for all new installations

                   Previously MySQL did not require database prefix to be set in config.php,
                   since MySQL 8.0 the prefix is however required. To prevent problems in
                   future upgrades Totara now requires table prefix for all databases.

    TL-18983       Added workaround for missing support for PDF embedding on iOS devices

                   Web browsers on iOS devices have very limited support for embedding PDF
                   files – for example, only the first page is displayed and users cannot
                   scroll to next page. A new workaround was added to PDF embedding in File
                   resource to allow iPhone and iPad users to open a PDF in full-screen mode
                   after clicking on an embedded PDF.

    TL-18998       Improved performance of language pack installation by changing to gzip

                   Language pack installation and updates now utilise gzip instead of zip.
                   Extract of gzip files is much quicker than zip files within Totara.
                   Manual installation and updates using zip files are still supported and
                   will continue to operate.
                   All online installations and updates will now use tgz files exclusively.

    TL-19084       Enrolment type column in course completion report source is now using subqueries to improve compatibility of other general columns in the same report

Bug fixes:

    TL-14204       Updated the inline helper text for course completion tracking

                   Prior to this patch, there was a misleading inline helper text on the
                   course view page next to 'Your progress'. 
                   With this patch, the inline helper text is updated to reflect with the
                   change of the completion icon.

    TL-17629       Fixed failures in the Seminar send_notification_task when performed under high load

                   Some sites with large number of Seminar activities (100 000+) experienced
                   'out of memory' failures during execution of the scheduled task
                   (send_notifications_task). This task has now been optimised to use less
                   memory.

    TL-17658       MSSQL 2016 and below now correctly sort aggregated course columns in the program overview report

                   The program overview report was using SQL group_concat to ensure
                   concatenated columns such as course name, and course status were ordered
                   correctly and consistently.
                   However the group_concat functionality in MSSQL 2016 and below does not
                   support sorting, and there is no alternative.
                   The fix for this was to shift sorting from the database to Totara if the
                   site is running on MSSQL 2016 or below.
                   This will have a small impact on performance, but will ensure for those
                   sites that the columns are correctly and consistently sorted.
                   Our recommendation is to upgrade MSSQL 2017 is possible.

    TL-18802       Changed the date format of Session Date related columns within Seminar Sign-ups report source

                   Previously the report columns 'Session Start' and 'Session Finish' were
                   formatted differently than the 'Session Start (linked to activity)' column.
                   These columns are now formatted consistently.

    TL-18839       The 'Blocks editing on' button has been put back onto the 'Browse list of users' report page

                   Prior to this page being converted to an embedded report it had a button to
                   turn editing on.
                   That button was unintentionally removed during the conversion.
                   It has now been put back.

    TL-18869       Fixed error message display after LDAP authentication plugin settings form is submitted
    TL-18887       Fixed resetting of course type when uploading courses using a CSV file that does not contain the column

                   This is a regression from TL-17920 which added Course type as a supported
                   column when uploading courses via CSV.
                   Totara 10.12, 10.13, 11.6, and 11.7 are affected.

    TL-18897       Added a link on Appraisal stage interfaces for navigation back to the Appraisal
    TL-18908       Fixed window resize functionality when viewing the grader report
    TL-18942       Fixed the email subject line format for emails sent from the Certificate module

                   Prior to this change the subject lines used for emails sent by the
                   Certificate module were being formatted for HTML, not for emails.
                   This led to characters being escaped and converted to entities.
                   As of this fix the subject is formatted correctly, and should no longer end
                   up with HTML entities within it.

    TL-18959       Fixed the double escaping of Report names when viewing the list of my reports

                   The report name was being passed once through format_string() and once
                   through s() when displaying the list of reports to the user on the My
                   reports page.
                   The fix for this change involved modifying templates, see
                   totara/core/upgrade.txt for technical details.

    TL-18981       Fixed aggregation of a learner's course progress after use of completion editor

                   When the completion editor is used to mark a course complete for a specific
                   learner, the progress bar in the Record of learning is now updated to
                   indicate that the learner has completed the course.

    TL-19009       Fixed incorrectly deprecated filter language strings on "Bulk user actions" page

                   Strings datelabelisafter, datelabelisbefore, datelabelisbetween were
                   deprecated in Totara 10.0 while still being used on the "Bulk user
                   actions" page. This has now been corrected and these strings were removed
                   from the deprecated list.

    TL-19010       Removed incorrectly deprecated function message_page_type_list() from the deprecatedlib.php
    TL-19017       Added styles to display Appraisal content correctly on mobile devices

                   Added styles for correctly displaying an individual Appraisal selected from
                   the 'My appraisals' page on mobile devices. Previously content had layout
                   issues and was incorrectly cropped.

    TL-19072       Fixed wait-listed attendees not being automatically added to the Seminar's attendees list after a reservation is deleted

API changes:

    TL-18845       Removed a superfluous unique index on the job_assignment.id column
    TL-18927       Totara form load deferred object now resolves after the form initialise JavaScript is called

                   Previously, the Totara form initialise code was run after the load deferred
                   object had been resolved. This meant that calls to getFormInstance(formid)
                   would return null on load.done(), and not the form that was requested.

    TL-18985       Unit tests may now override lang strings

Release 9.25 (25th October 2018):


Security issues:

    TL-18957       Fixed permission checks for learning plans

                   Prior to this patch all plan templates were being checked to see if a user
                   had a permission (e.g. update plan). Now only the template that the plan is
                   based off is checked for the permission.


Improvements:

    TL-17586       Greatly improved the performance of the update competencies scheduled task

                   The scheduled task to reaggregate the competencies
                   "\totara_hierarchy\task\update_competencies_task" was refactored to fix a
                   memory leak. The scheduled task now loops through the users and loads and
                   reaggregates items per user and not in one huge query as before. This
                   minimises impact on memory but increases number of queries and runtime.

    TL-18565       [Evergreen 12.0]Moved 'Override user conflicts' action out of the seminar event setting page and into a 'save' modal dialog[Evergreen 12.0][9.25 10.14 11.8]Improved the wording around the 'Override user conflicts' settings page in seminars[9.25 10.14 11.

                   The 'Override user scheduling conflicts' setting was initially intended for
                   use with new events where the assigned roles resulted in conflicts with
                   existing events. It was not originally designed to work with existing
                   events. 
                   [Evergreen 12.0]We improved the wording to clarify this feature without
                   further changes in the UI and workflow.[Evergreen 12.0]  
                   [9.25 10.14 11.8] We changed the event configuration flow by moving the
                   'override' action out of the settings page and into the 'save' modal dialog
                   where it belongs. So in essence you will be able override conflicts upon
                   creation and edit.[9.25 10.14 11.8]

    TL-18852       Database table prefix is now required for all new installations

                   Previously MySQL did not require database prefix to be set in config.php,
                   since MySQL 8.0 the prefix is however required. To prevent problems in
                   future upgrades Totara now requires table prefix for all databases.

    TL-18983       Added workaround for missing support for PDF embedding on iOS devices

                   Web browsers on iOS devices have very limited support for embedding PDF
                   files – for example, only the first page is displayed and users cannot
                   scroll to next page. A new workaround was added to PDF embedding in File
                   resource to allow iPhone and iPad users to open a PDF in full-screen mode
                   after clicking on an embedded PDF.


Bug fixes:

    TL-14204       Updated the inline helper text for course completion tracking

                   Prior to this patch, there was a misleading inline helper text on the
                   course view page next to 'Your progress'. 
                   With this patch, the inline helper text is updated to reflect with the
                   change of the completion icon.

    TL-17629       Fixed failures in the Seminar send_notification_task when performed under high load

                   Some sites with large number of Seminar activities (100 000+) experienced
                   'out of memory' failures during execution of the scheduled task
                   (send_notifications_task). This task has now been optimised to use less
                   memory.

    TL-18802       Changed the date format of Session Date related columns within Seminar Sign-ups report source

                   Previously the report columns 'Session Start' and 'Session Finish' were
                   formatted differently than the 'Session Start (linked to activity)' column.
                   These columns are now formatted consistently.

    TL-19072       Fixed wait-listed attendees not being automatically added to the Seminar's attendees list after a reservation is deleted

API changes:

    TL-18845       Removed a superfluous unique index on the job_assignment.id column
    TL-18985       Unit tests may now override lang strings

Release 2.9.37 (25th October 2018):


Security issues:

    TL-18957       Fixed permission checks for learning plans

                   Prior to this patch all plan templates were being checked to see if a user
                   had a permission (e.g. update plan). Now only the template that the plan is
                   based off is checked for the permission.


Improvements:

    TL-18983       Added workaround for missing support for PDF embedding on iOS devices

                   Web browsers on iOS devices have very limited support for embedding PDF
                   files – for example, only the first page is displayed and users cannot
                   scroll to next page. A new workaround was added to PDF embedding in File
                   resource to allow iPhone and iPad users to open a PDF in full-screen mode
                   after clicking on an embedded PDF.


Bug fixes:

    TL-14204       Updated the inline helper text for course completion tracking

                   Prior to this patch, there was a misleading inline helper text on the
                   course view page next to 'Your progress'. 
                   With this patch, the inline helper text is updated to reflect with the
                   change of the completion icon.


Release 2.7.45 (25th October 2018):


Security issues:

    TL-18957       Fixed permission checks for learning plans

                   Prior to this patch all plan templates were being checked to see if a user
                   had a permission (e.g. update plan). Now only the template that the plan is
                   based off is checked for the permission.


Improvements:

    TL-18983       Added workaround for missing support for PDF embedding on iOS devices

                   Web browsers on iOS devices have very limited support for embedding PDF
                   files – for example, only the first page is displayed and users cannot
                   scroll to next page. A new workaround was added to PDF embedding in File
                   resource to allow iPhone and iPad users to open a PDF in full-screen mode
                   after clicking on an embedded PDF.


Bug fixes:

    TL-19035       Backported TL-9993 to fix image display in editor within plans

Release 2.6.62 (25th October 2018):


Security issues:

    TL-18957       Fixed permission checks for learning plans

                   Prior to this patch all plan templates were being checked to see if a user
                   had a permission (e.g. update plan). Now only the template that the plan is
                   based off is checked for the permission.


Release 2.5.68 (25th October 2018):


Security issues:

    TL-18957       Fixed permission checks for learning plans

                   Prior to this patch all plan templates were being checked to see if a user
                   had a permission (e.g. update plan). Now only the template that the plan is
                   based off is checked for the permission.