Hello everyone,
The following versions of Totara Learn have now been released:
These versions do contain security fixes, and for this reason we strongly recommend upgrade.
Each release also includes bug fixes and improvements.
A big thanks to the following people for their contributions to this release:
- Ayman Al Kurdi at iLearn - TL-20772
- Georgi Dimitrov at LearnChamp - TL-21090
- Russell England at Kineo - TL-21183
Kind regards
David Curry
Release 2.9.44 (19th June 2019):
Security issues:
TL-21071 MDL-64708: Removed an open redirect within the audience upload form
TL-21243 Added sesskey checks to prevent CSRF in several Learning Plan dialogs
Release 9.33 (19th June 2019):
Security issues:
TL-21071 MDL-64708: Removed an open redirect within the audience upload form
TL-21243 Added sesskey checks to prevent CSRF in several Learning Plan dialogs
Bug fixes:
TL-21175 Added the ability to fix out of order competency scale values
Previously when a competency scale was assigned to a framework, and users
had achieved values from that scale, it was not possible to correct any
ordering issues involving proficient values being below non-proficient
values.
Warnings are now shown when proficient values are out of order, and it is
possible to change the proficiency settings of these scales to correct this
situation.
Release 10.22 (19th June 2019):
Security issues:
TL-21071 MDL-64708: Removed an open redirect within the audience upload form
TL-21243 Added sesskey checks to prevent CSRF in several Learning Plan dialogs
Bug fixes:
TL-20034 Added a new scheduled task to purge orphaned course completion records
On large course datasets it was possible for a background cron job to start
running before an interactive course delete action had completed. This
could result in data integrity issues, e.g. the system having course
completion data for a course that no longer exists. A scheduled task has
been added to clean up any orphaned course completion data that might
exist, by default this task will run once a day at 1:54 am.
TL-20925 Fixed a PHP warning that was encountered when redirecting with a message before the session had been started
TL-21175 Added the ability to fix out of order competency scale values
Previously when a competency scale was assigned to a framework, and users
had achieved values from that scale, it was not possible to correct any
ordering issues involving proficient values being below non-proficient
values.
Warnings are now shown when proficient values are out of order, and it is
possible to change the proficiency settings of these scales to correct this
situation.
TL-21242 Fixed a bug preventing the modification of job assignments if the assignment name contained a space
Release 11.16 (19th June 2019):
Important:
TL-21080 Prevented automatic completion of appraisal stages without any populated roles
Before this patch, completion of an appraisal stage could lead to automatic
completion of the following stage if that contained only unpopulated
appraisal roles.
With this patch automatic completion of subsequent stages only happens
when all populated roles have completed the stage and at least one role
(populated or not) has completed the stage.
This fixes a change in behaviour introduced in TL-19824.
This patch does not change affected appraisals on upgrade. For affected
appraisals, completed stages can be manually reset using the stage editing
tool in the appraisal administration's "assignments" tab.
Security issues:
TL-21071 MDL-64708: Removed an open redirect within the audience upload form
TL-21243 Added sesskey checks to prevent CSRF in several Learning Plan dialogs
Performance improvements:
TL-20772 Optimised SQL base query to include userid in the rb_source_dp_course report source
To improve report performance, if userid is supplied to the report page of
the "Record of Learning: Courses" report source, it is now included in the
base SQL query.
Please note that the "Record of Learning: Courses" report source no longer
supports caching.
Improvements:
TL-20512 Improved the accessibility of the seminar take attendance form
Attached a human-readable aria-label text to form elements.
TL-20575 Added an event for Program and Certification user completion state change via the completion editor
An event will now log the old and new completion state when changed for a
user using the completion editor for a Program or Certification together
with the user who made the change
Bug fixes:
TL-20034 Added a new scheduled task to purge orphaned course completion records
On large course datasets it was possible for a background cron job to start
running before an interactive course delete action had completed. This
could result in data integrity issues, e.g. the system having course
completion data for a course that no longer exists. A scheduled task has
been added to clean up any orphaned course completion data that might
exist, by default this task will run once a day at 1:54 am.
TL-20716 Seminar session date time columns within report builder sources are now accurately described
Language strings used to describe the session start and finish date/time
columns within seminar report sources have been improved.
TL-20885 Ensured email address validation within HR Import is used when the 'Allow duplicate emails' setting is enabled
Prior to this patch, if 'Allow duplicate emails' was set, email address
validation was inadvertently being ignored, making it possible for an
invalid email address to be set for imported users.
This patch ensures the email address is validated correctly, but cannot fix
any existing invalid email addresses. If you have been using this setting,
it is recommended to manually check any imported user email addresses.
TL-20925 Fixed a PHP warning that was encountered when redirecting with a message before the session had been started
TL-20927 Fixed the alignment of the name column within the grader report when the browser is zoomed
TL-21099 The menu of choices custom field filter in report builder now correctly handles "Any value"
TL-21175 Added the ability to fix out of order competency scale values
Previously when a competency scale was assigned to a framework, and users
had achieved values from that scale, it was not possible to correct any
ordering issues involving proficient values being below non-proficient
values.
Warnings are now shown when proficient values are out of order, and it is
possible to change the proficiency settings of these scales to correct this
situation.
TL-21181 Fixed an HR Import Hierarchy circular reference sanity check timeout issue when assigning parents
TL-21183 Fixed non-escaped characters being used in an SQL like statement during message provider upgrade
Prior to this patch, if a developer created a customisation that renamed or
deleted a message provider in a plugin, and the key of another message
provider in the same plugin began with the same key being removed, then,
during upgrade, the default message preference for the other message
provider was being deleted. This could have led to an exception when
messages based on the other message provider were being sent. Now, only the
correct record is being deleted.
TL-21189 Made the user 'full name link' report builder column take active enrolment into account
Prior to this patch, when a user was no longer enrolled in a course, but
the records were still stored within the course, report builder would
include the course ID in the user's full name link. Unfortunately, if the
link was clicked, a fatal error would be produced as the user was no longer
enrolled in the course.
With this patch, if the viewer is not able to view a user's profile within
the course, then there will be no link produced for that user's full name
in reports.
TL-21208 Deleting report builder columns used by disabled graphs is no longer prevented
Before this change, if a column was used in a graph then, even if the graph
was later disabled, the column could not be deleted until it had been
removed from the graph. This resulted in having to re-activate the graph
just to remove the column from the data source field.
This change has updated the check to determine whether the affected graph
is enabled, only preventing deletion of the column when it is.
TL-21239 Fixed a bug within Atto editor where text alignment could not be changed within IE11 or Edge
Previously the alignment of text within the Atto editor would fail to
change alignment in IE11 or Edge, if the text had already been aligned by
another user in a different browser (such as Firefox or Chrome).
This has now been fixed so that IE11 and Edge users can change the
alignment of text previously aligned in Firefox or Chrome.
TL-21242 Fixed a bug preventing the modification of job assignments if the assignment name contained a space
Contributions:
* Ayman Al Kurdi at iLearn - TL-20772
* Russell England at Kineo - TL-21183
Release 12.7 (19th June 2019):
Important:
TL-21080 Prevented automatic completion of appraisal stages without any populated roles
Before this patch, completion of an appraisal stage could lead to automatic
completion of the following stage if that contained only unpopulated
appraisal roles.
With this patch automatic completion of subsequent stages only happens
when all populated roles have completed the stage and at least one role
(populated or not) has completed the stage.
This fixes a change in behaviour introduced in TL-19824.
This patch does not change affected appraisals on upgrade. For affected
appraisals, completed stages can be manually reset using the stage editing
tool in the appraisal administration's "assignments" tab.
Security issues:
TL-21071 MDL-64708: Removed an open redirect within the audience upload form
TL-21243 Added sesskey checks to prevent CSRF in several Learning Plan dialogs
Performance improvements:
TL-20772 Optimised SQL base query to include userid in the rb_source_dp_course report source
To improve report performance, if userid is supplied to the report page of
the "Record of Learning: Courses" report source, it is now included in the
base SQL query.
Please note that the "Record of Learning: Courses" report source no longer
supports caching.
Improvements:
TL-20512 Improved the accessibility of the seminar take attendance form
Attached a human-readable aria-label text to form elements.
TL-20575 Added an event for Program and Certification user completion state change via the completion editor
An event will now log the old and new completion state when changed for a
user using the completion editor for a Program or Certification together
with the user who made the change
Bug fixes:
TL-20034 Added a new scheduled task to purge orphaned course completion records
On large course datasets it was possible for a background cron job to start
running before an interactive course delete action had completed. This
could result in data integrity issues, e.g. the system having course
completion data for a course that no longer exists. A scheduled task has
been added to clean up any orphaned course completion data that might
exist, by default this task will run once a day at 1:54 am.
TL-20533 Changed the seminar 'Allow Manager reservations' functionality to allow suspended users to be enrolled into seminar events
TL-20716 Seminar session date time columns within report builder sources are now accurately described
Language strings used to describe the session start and finish date/time
columns within seminar report sources have been improved.
TL-20885 Ensured email address validation within HR Import is used when the 'Allow duplicate emails' setting is enabled
Prior to this patch, if 'Allow duplicate emails' was set, email address
validation was inadvertently being ignored, making it possible for an
invalid email address to be set for imported users.
This patch ensures the email address is validated correctly, but cannot fix
any existing invalid email addresses. If you have been using this setting,
it is recommended to manually check any imported user email addresses.
TL-20925 Fixed a PHP warning that was encountered when redirecting with a message before the session had been started
TL-20927 Fixed the alignment of the name column within the grader report when the browser is zoomed
TL-21054 Fixed alias name preventing seminar sessions report from correctly applying content filters
A bug has been fixed in the seminar sessions report builder source that was
causing a system error when trying to join content filters.
TL-21069 Fixed duplicate 'Event under minimum bookings' notifications after mod_facetoface upgrade
The seminar notification for events that do not achieve a minimum number of
bookings was implemented in a way that caused it to be sent again (and
again) for past seminar events whenever mod_facetoface was upgraded.
The 'Event under minimum bookings' notification has been reimplemented as a
real seminar notification, with an editable template and the ability to
customise it at the activity level. This means outgoing instances of this
notification will be tracked to prevent duplicates.
Any seminar events that have not started yet, and that are eligible to
receive an 'Event under minimum bookings' notification, may receive one
final duplicate notification after upgrade to this release.
TL-21090 The "Booked by" column within the seminar sign-in sheet report source no longer produces a fatal error
TL-21096 Fixed incorrect classname checks in set_totara_menu_selected()
TL-21099 The menu of choices custom field filter in report builder now correctly handles "Any value"
TL-21175 Added the ability to fix out of order competency scale values
Previously when a competency scale was assigned to a framework, and users
had achieved values from that scale, it was not possible to correct any
ordering issues involving proficient values being below non-proficient
values.
Warnings are now shown when proficient values are out of order, and it is
possible to change the proficiency settings of these scales to correct this
situation.
TL-21181 Fixed an HR Import Hierarchy circular reference sanity check timeout issue when assigning parents
TL-21183 Fixed non-escaped characters being used in an SQL like statement during message provider upgrade
Prior to this patch, if a developer created a customisation that renamed or
deleted a message provider in a plugin, and the key of another message
provider in the same plugin began with the same key being removed, then,
during upgrade, the default message preference for the other message
provider was being deleted. This could have led to an exception when
messages based on the other message provider were being sent. Now, only the
correct record is being deleted.
TL-21184 Fixed the display of the feedback activity long text answer text box
TL-21189 Made the user 'full name link' report builder column take active enrolment into account
Prior to this patch, when a user was no longer enrolled in a course, but
the records were still stored within the course, report builder would
include the course ID in the user's full name link. Unfortunately, if the
link was clicked, a fatal error would be produced as the user was no longer
enrolled in the course.
With this patch, if the viewer is not able to view a user's profile within
the course, then there will be no link produced for that user's full name
in reports.
TL-21208 Deleting report builder columns used by disabled graphs is no longer prevented
Before this change, if a column was used in a graph then, even if the graph
was later disabled, the column could not be deleted until it had been
removed from the graph. This resulted in having to re-activate the graph
just to remove the column from the data source field.
This change has updated the check to determine whether the affected graph
is enabled, only preventing deletion of the column when it is.
TL-21223 The audience name report builder column no longer outputs HTML when exporting to another format
Previously the audience name column would always export an HTML link, even
when exporting to CSV or Excel.
This has been fixed so that the HTML link is only output when producing the
report for the web.
TL-21238 Added validation of seminar signup state classes to ensure that only valid classes are used
Seminar signup state transitions rely on the correct PHP classes being
loaded at runtime. A validation routine has been added to ensure that unit
tests will fail, and developers will receive debugging messages, if a
non-existent state class is used in seminar code.
TL-21239 Fixed a bug within Atto editor where text alignment could not be changed within IE11 or Edge
Previously the alignment of text within the Atto editor would fail to
change alignment in IE11 or Edge, if the text had already been aligned by
another user in a different browser (such as Firefox or Chrome).
This has now been fixed so that IE11 and Edge users can change the
alignment of text previously aligned in Firefox or Chrome.
TL-21242 Fixed a bug preventing the modification of job assignments if the assignment name contained a space
TL-21258 The course progress block now creates the embedded report it requires if it does not already exist
Contributions:
* Ayman Al Kurdi at iLearn - TL-20772
* Georgi Dimitrov at LearnChamp - TL-21090
* Russell England at Kineo - TL-21183
Release Evergreen (19th June 2019):
Key: + Evergreen only
Important:
TL-21080 Prevented automatic completion of appraisal stages without any populated roles
Before this patch, completion of an appraisal stage could lead to automatic
completion of the following stage if that contained only unpopulated
appraisal roles.
With this patch automatic completion of subsequent stages only happens
when all populated roles have completed the stage and at least one role
(populated or not) has completed the stage.
This fixes a change in behaviour introduced in TL-19824.
This patch does not change affected appraisals on upgrade. For affected
appraisals, completed stages can be manually reset using the stage editing
tool in the appraisal administration's "assignments" tab.
Security issues:
TL-21071 MDL-64708: Removed an open redirect within the audience upload form
TL-21243 Added sesskey checks to prevent CSRF in several Learning Plan dialogs
New features:
TL-18605 + New framework for Web APIs based on GraphQL and new Ajax API
TL-20421 + Seminar event attendance and grades can now be imported via CSV
With this feature, accessible from the seminar event 'Take attendance'
page, trainers are able to upload a CSV file with attendance information
for each event attendee. If event manual grading is enabled, the CSV file
may also include grades.
API changes:
TL-14412 + Deprecated custom notification handling
The following functions have been deprecated as part of this:
* Function: totara_get_notifications() (alternative method:
\core\notification::fetch())
* Function: Function: totara_set_notification() (alternative: redirect or
\core\notification::*())
* Function: totara_convert_notification_to_legacy_array() (no alternative)
* Function: totara_queue_append() (no alternative)
* Function: totara_queue_shift() (no alternative)
* Method: \core\notification::add_totara_legacy() (no alternative)
TL-20362 + Converted M.totara_plan_course_find from a YUI module to an AMD module
TL-20363 + Converted M.totara_plan_program_find from a YUI module to an AMD module
TL-20364 + Converted M.totara_plan_competency_find from a YUI module to an AMD module
TL-20749 + New "ttr_tablename" syntax is allowed in SQL queries in addition to current {tablename}
As well as using
{tablename}
in an SQL query it is now also possible to use "ttr_tablename".
This enables SQL queries to be written that can be processed by code
parsers and IDEs.
Developers may want to consider using ttr_ as your default database prefix
from now on.
TL-20765 + Added a new SQL class to improve handling of raw SQL in DML API
TL-20819 + Added a new interface for placeholder objects used within get_string() calls
Developers can now pass objects which implement core_string_placeholders
to the third parameter of get_string. The replace function which these
objects provide will be used to perform string placeholder substitution.
This allows more powerful and complex placeholder systems to be
implemented, in a consistent and reusable way. All values which could
previously be passed as the third parameter of get_string are still
supported.
TL-20864 + Upgraded jQuery to 3.4.1
jQuery changelog can be found at
https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/
TL-21024 + Added support for enforced foreign key consistency
Onupdate and ondelete referential integrity actions can now be added to
foreign key relations.
By default foreign keys are not enforced in any way.
During definition of a foreign key using the XMLDB editor you can now
choose to enforce referential integrity through set actions.
The following actions are available:
* 'restrict' blocks violation of foreign keys
* 'cascade' propagates deletes
* 'setnull' changes value to NULL
TL-21040 + Converted report_loglive YUI module to AMD module
This removes the original YUI module
TL-21176 + Upgraded chart.js library to version 2.8.0
TL-21177 + Added 'core/popover:destroy' event to the popover component
Performance improvements:
TL-20772 Optimised SQL base query to include userid in the rb_source_dp_course report source
To improve report performance, if userid is supplied to the report page of
the "Record of Learning: Courses" report source, it is now included in the
base SQL query.
As a side effect, this patch also improves aggregation support for
the "Record of Learning: Courses" report source.
Previously this report source contained several required columns in order
to ensure user visibility was correctly applied. These required columns led
to aggregation within the report not working. Thanks to improvements made
in Totara 12 this could be refactored so that the required columns are no
longer necessary. Visibility is still calculated accurately and aggregation
is now working for this report source.
Please note that the "Record of Learning: Courses" report source no longer
supports caching.
Improvements:
TL-5660 + Uploading completion records no longer creates evidence for unrecognised records by default
Previously, when uploading course or certification completion data using a
CSV file, an evidence record would be created for any row in the file that
did not match up exactly with an existing course or certification. The
default was to create generic evidence, but other 'Default evidence types'
were selectable.
The new default 'Default evidence type' setting is 'Do not create
evidence'. This will cause unmatched rows to be marked as errors instead of
being used to create evidence records.
To recreate the old behaviour, set 'Create generic evidence' as the
'Default evidence type' for the import.
TL-20422 + Moved seminar event and session details to a separate tab
Details of a seminar event and its associated sessions, including room and
asset information, has been shown to trainers at the top of each seminar
management tab ('Attendees', 'Cancellations', 'Take attendance', et
cetera). This information was the same from tab to tab, and pushed unique
information and functionality down the page.
Seminar event and session information has been moved to its own tab, 'Event
details', and removed from all other seminar management tabs.
TL-20423 + Replaced seminar 'Go back' links with 'View all events' buttons
In order to simplify seminar management and improve usability for trainers,
the 'Go back' links at the bottom of all seminar management screens have
been replaced with buttons that read 'View all events'.
TL-20476 + Created new seminar setting 'Passing grade' and added 'Require passing grade' seminar activity completion option
Seminar activity completion options have been enhanced to bring seminar in
line with other Totara activities like assignment and quiz. Previously,
seminar only had a 'Learner must receive a grade to complete this
activity' option. This has been replaced by a 'Require grade' option with
two choices: 'Yes, any grade' and 'Yes, passing grade'.
If 'Yes, passing grade' is chosen, a passing grade must be set for the
seminar. The default passing grade can be set globally. Setting the passing
grade higher than 0 enables the use of pass/fail marks on the activity
completion report.
In order to provide backward compatibility with previous seminar activity
completion options, the upgrade will set 'Require grade' to 'Yes, any
grade' and 'Passing grade' to '0' on any seminar where 'Learner must
receive a grade to complete this activity' is enabled. This has the effect
of exactly reproducing the previous behaviour.
In addition, this patch has fixed two other minor issues:
* the facetoface_signups_status.createdby database field was not being
updated when taking attendance
* archived sign-up data entries were not being excluded from the
computation of a seminar grade
TL-20512 Improved the accessibility of the seminar take attendance form
Attached a human-readable aria-label text to form elements.
Removed hidden, non-human readable label from event attendance dropdown
box.
TL-20546 + Added 'Event grade' column to 'Seminar Signup' report source
TL-20575 Added an event for Program and Certification user completion state change via the completion editor
An event will now log the old and new completion state when changed for a
user using the completion editor for a Program or Certification together
with the user who made the change
TL-20891 + Improved the consistency of sanitisation for the user identity fields
TL-20892 + Improved layout of OAuth2 service providers on the login page
TL-20918 + Implemented new DML function set_fields and set_fields_select to update multiple fields in a table
TL-21036 + Implemented a CSV for spreadsheets export for Report Builder
This new CSV export format is designed for use with spreadsheets.
It produces a CSV file that is close to RFC4180 but that has an escape
character in front of any data that may be interpreted by the spreadsheet
application.
We recommend that users use this export format if they have to export to
CSV but intend to open the .csv file in a spreadsheet application as it
protects them against CSV injection attacks.
This export format is not enabled by default. Those wanting to use it must
enable it within the "Export Options" setting for Report Builder.
TL-21115 + Added new database settings for encryption of database communication
Full details on how to configure SSL communication with your database can
be found in config-dist.php after upgrade.
TL-21155 + Seminar session attendance tracking is now off by default
Bug fixes:
TL-16324 + Fixed global search navigation when Solr is enabled and configured
Prior to this patch the "Manage global search" page would only be shown in
the site administration structure when you were on certain pages.
It is now shown consistently when intended.
TL-20034 Added a new scheduled task to purge orphaned course completion records
On large course datasets it was possible for a background cron job to start
running before an interactive course delete action had completed. This
could result in data integrity issues, e.g. the system having course
completion data for a course that no longer exists. A scheduled task has
been added to clean up any orphaned course completion data that might
exist, by default this task will run once a day at 1:54 am.
TL-20327 + Fixed race condition when totara dialogs are not initialised when adding components to a learning plan
TL-20533 Changed the seminar 'Allow Manager reservations' functionality to allow suspended users to be enrolled into seminar events
TL-20716 Seminar session date time columns within report builder sources are now accurately described
Language strings used to describe the session start and finish date/time
columns within seminar report sources have been improved.
TL-20804 + Seminar 'Add users' step 2 now respects the showuseridentify config setting
Previously, user full name, email address, username and ID number were
displayed in step 2 of the 'Add user' workflow without respecting the
'showuseridentity' config setting. Now ID number and username are no longer
shown, and display of email address respects the "showuseridentity" config
setting.
TL-20885 Ensured email address validation within HR Import is used when the 'Allow duplicate emails' setting is enabled
Prior to this patch, if 'Allow duplicate emails' was set, email address
validation was inadvertently being ignored, making it possible for an
invalid email address to be set for imported users.
This patch ensures the email address is validated correctly, but cannot fix
any existing invalid email addresses. If you have been using this setting,
it is recommended to manually check any imported user email addresses.
TL-20925 Fixed a PHP warning that was encountered when redirecting with a message before the session had been started
TL-20927 Fixed the alignment of the name column within the grader report when the browser is zoomed
TL-20987 + Fixed double encoding of user identity fields in the history grader report
Any customisations made using the /grade/report/history/users_ajax.php file
should check the output of user identity fields after upgrade to ensure
proper sanitisation is happening on output.
TL-21054 Fixed alias name preventing seminar sessions report from correctly applying content filters
A bug has been fixed in the seminar sessions report builder source that was
causing a system error when trying to join content filters.
TL-21069 Fixed duplicate 'Event under minimum bookings' notifications after mod_facetoface upgrade
The seminar notification for events that do not achieve a minimum number of
bookings was implemented in a way that caused it to be sent again (and
again) for past seminar events whenever mod_facetoface was upgraded.
The 'Event under minimum bookings' notification has been reimplemented as a
real seminar notification, with an editable template and the ability to
customise it at the activity level. This means outgoing instances of this
notification will be tracked to prevent duplicates.
Any seminar events that have not started yet, and that are eligible to
receive an 'Event under minimum bookings' notification, may receive one
final duplicate notification after upgrade to this release.
TL-21090 The "Booked by" column within the seminar sign-in sheet report source no longer produces a fatal error
TL-21096 Fixed incorrect classname checks in set_totara_menu_selected()
TL-21099 The menu of choices custom field filter in report builder now correctly handles "Any value"
TL-21117 + Fixed a bug that generated the wrong page URL for seminar session 'Take attendance' page
TL-21175 Added the ability to fix out of order competency scale values
Previously when a competency scale was assigned to a framework, and users
had achieved values from that scale, it was not possible to correct any
ordering issues involving proficient values being below non-proficient
values.
Warnings are now shown when proficient values are out of order, and it is
possible to change the proficiency settings of these scales to correct this
situation.
TL-21181 Fixed an HR Import Hierarchy circular reference sanity check timeout issue when assigning parents
TL-21183 Fixed non-escaped characters being used in an SQL like statement during message provider upgrade
Prior to this patch, if a developer created a customisation that renamed or
deleted a message provider in a plugin, and the key of another message
provider in the same plugin began with the same key being removed, then,
during upgrade, the default message preference for the other message
provider was being deleted. This could have led to an exception when
messages based on the other message provider were being sent. Now, only the
correct record is being deleted.
TL-21184 Fixed the display of the feedback activity long text answer text box
TL-21189 Made the user 'full name link' report builder column take active enrolment into account
Prior to this patch, when a user was no longer enrolled in a course, but
the records were still stored within the course, report builder would
include the course ID in the user's full name link. Unfortunately, if the
link was clicked, a fatal error would be produced as the user was no longer
enrolled in the course.
With this patch, if the viewer is not able to view a user's profile within
the course, then there will be no link produced for that user's full name
in reports.
TL-21208 Deleting report builder columns used by disabled graphs is no longer prevented
Before this change, if a column was used in a graph then, even if the graph
was later disabled, the column could not be deleted until it had been
removed from the graph. This resulted in having to re-activate the graph
just to remove the column from the data source field.
This change has updated the check to determine whether the affected graph
is enabled, only preventing deletion of the column when it is.
TL-21223 The audience name report builder column no longer outputs HTML when exporting to another format
Previously the audience name column would always export an HTML link, even
when exporting to CSV or Excel.
This has been fixed so that the HTML link is only output when producing the
report for the web.
TL-21238 Added validation of seminar signup state classes to ensure that only valid classes are used
Seminar signup state transitions rely on the correct PHP classes being
loaded at runtime. A validation routine has been added to ensure that unit
tests will fail, and developers will receive debugging messages, if a
non-existent state class is used in seminar code.
TL-21239 Fixed a bug within Atto editor where text alignment could not be changed within IE11 or Edge
Previously the alignment of text within the Atto editor would fail to
change alignment in IE11 or Edge, if the text had already been aligned by
another user in a different browser (such as Firefox or Chrome).
This has now been fixed so that IE11 and Edge users can change the
alignment of text previously aligned in Firefox or Chrome.
TL-21242 Fixed a bug preventing the modification of job assignments if the assignment name contained a space
TL-21252 + Added database table keys skipped during upgrade and migration
TL-21258 The course progress block now creates the embedded report it requires if it does not already exist
Contributions:
* Ayman Al Kurdi at iLearn - TL-20772
* Georgi Dimitrov at LearnChamp - TL-21090
* Russell England at Kineo - TL-21183
