Hello everyone,
The following versions of Totara Learn have now been released:
Each release includes bug fixes and improvements.
A big thanks to the following people for their contributions to this release:
- John Phoon at Kineo Pacific - TL-21564
Kind regards David Curry
Release Evergreen (17th July 2019):
Key: + Evergreen only
API changes:
TL-20548 + 'runTemplateJS()' now returns an ES6 promise
The 'runTemplateJS' function in the core/templates AMD library now returns
an ES6 Promise once all UI components have been initialised
TL-21193 + Added Laravel-like Query Builder
This patch introduces a query builder which abstracts querying the database
on top of the DML layer. The query builder is inspired by [Laravel’s
Query Builder|https://laravel.com/docs/master/queries] and provides a
similar feature set. It provides a consistent fluent interface. Internally
it uses the DML layer to execute queries so database compatibility and
low-level query integrity is ensured. The query builder provides at least
the same functionality as the DML layer. It should be possible to
substitute existing DML actions with it, as well as cover more complex
cases which are only possible via raw SQL queries at the moment.
Full documentation is available here:
[https://help.totaralearning.com/display/DEV/Query+builder]
TL-21222 + Added support for deferring the creation of foreign keys
This improvement extends TL-21024 which added support for enforcing foreign
key relationships within install.xml.
It is now possible to mark a foreign key relationship as deferred within
install.xml, causing the system to skip the creation of the foreign key
during installation. The developer is then responsible for creating the
foreign key at the right time within an install.php file.
TL-21230 + Added a new transaction function in DML which accepts a Closure
The new 'transaction()' method accepts a Closure which is automatically
wrapped in a transaction. This is an alternative syntax to the traditional
transaction handling.
TL-21240 + Extracted class 'program_utilities' into its own autoloaded class '\totara_program\utils'
TL-21256 + Nested transactions can be safely rolled back
Previously transaction rollbacks were not supposed to be used from
non-system code and they were not allowed at all in nested transactions.
Rollback of individual nested transactions is now fully supported, and it
is also not required to supply an exception when rolling back nested or
main transactions.
TL-21288 + Relative file serving now facilitates file serving options including 'allowxss'
TL-21327 + Extracted program exceptions code into autoloaded classes \totara_program\exception\*
TL-21368 + Implemented a generic formatter to format fields of objects
A formatter can be implemented for an existing object, for example a record
from the database. It defines a map using field names for the keys and
field format functions for the values. The formatter will get the value
from the object, run it through the format function defined in the map and
return the formatted value. Currently we support a text (using
format_text()), a string (using format_string()) and a date formatter.
Custom field formatters can easily be implemented extending the base field
formatter.
The existing helper functions format_text() and format_date()
in \core\webapi\execution_context were deprecated in favour of the new
field formatters \totara_core\formatter\field\text_field_formatter
and \totara_core\formatter\field\date_field_formatter.
Documentation: [https://help.totaralearning.com/display/DEV/Formatters]
TL-21370 Method resetAfterTest() in PHPUnit tests has been deprecated
Since the introduction of parallel PHPUnit testing the order of test
execution is no longer defined, which means that tests cannot rely on state
(database and file system) to be carried over from one test into another.
Existing PHPUnit tests need to be updated to prepare data at the beginning
of each test method separately.
Performance improvements:
TL-21541 The source filter for report builder sources has been optimised
Previously the options for this filter were loaded, even when not needed.
This was an expensive operation, often done needlessly. The options are now
only loaded when absolutely needed.
Improvements:
TL-17691 Added site policies to the self-registration process
To comply with GDPR policies, when self-registration is enabled, new users
are now required to accept mandatory site policies before being able to
request a new account, as opposed to the users only viewing the site
policies after registering and logging in.
TL-17745 Improved the program assignments user interface to better handle a large number of assignments
The previous user interface for program assignments would load every
assignment onto a single page, and in some situations where a very large
number of assignments were added to a single program or certification the
page would time out on load. The page now has a search, and filter, and
prevents too many records being loaded at the same time.
TL-18678 + Improved course selector form element for changing a 'Recurring Course' in programs content
Prior to this change all courses were loaded into a single drop-down, which
could lead to performance issues on sites with a large number of courses.
This drop-down has now been replaced with the standard course selector
dialog already used in selecting courses for program course sets.
TL-19799 + Nonfunctional Google Fusion export options were removed
TL-20418 + Added seminar attendance 'CSV export for Upload' feature
Following on the ability to upload seminar attendance in the last release,
it is now possible to download a seminar attendance report that is already
correctly formatted for upload.
Trainers can use the new 'CSV export for Upload' to mark event attendance,
and optionally grade if manual event grading is enabled, in bulk. The file
can then be uploaded with no further changes to column layout or header
names.
TL-20425 + Updated seminar event dashboard and course view
This patch contains several improvements to the seminar event dashboard and
the course activity view, including:
* Added 'Previous events time period' options to be able to display only
past events in the specific time period
* Redesigned the filter bar with tool-tips and icon
* Added new filters: booking status, attendance tracking status
* Reverted the change in TL-19928 (February 2019 release); the seminar
event dashboard is now back to two tables: one is for upcoming or ongoing
events, the other is for past or cancelled events
* Redesigned session list table
* Rearranged table columns
* Broke down event status into three types: event time, event booking
status, and user booking status
TL-20760 Added support for search metadata within Courses, Programs, and Certifications.
New text field added to Courses, Programs, and Certifications settings
where search keywords can be added. These keywords will not be displayed
anywhere on pages but will be used in Full Text Search.
By default these fields are empty.
TL-20761 Added wildcard support for full text search in catalog
When asterisk "*" is placed as a last character of a single keyword in
catalog it will return all partial matches starting with the given
keyword. Asterisk can be placed only in the end of keyword search (this
is limitations of wildcard support in databases) and at this stage only
single keywords are supported (no whitespaces).
TL-20834 Enabled unaccented Full Text Search in catalog
PostgreSQL and MS SQL have built in support for accent insensitive full
text searches.
By default, database configuration is used (typically accent sensitivity is
on).
To change accent sensitivity of full test searches for either PostgreSQL or
MS SQL you can set the
following options in config.php:
$CFG->dboptions['ftsaccentsensitivity'] = true; // Accent sensitive search
$CFG->dboptions['ftsaccentsensitivity'] = false; // Accent insensitive
search
After changing the accent sensitivity setting you need to run the following
scripts in the listed order:
php admin/cli/fts_rebuild_indexes.php
php admin/cli/fts_repopulate_tables.php
TL-20886 Added ngram support for MySQL full text search
Added support of ngram in MySQL. ngram is a Full Text parser that mainly
designed to support Chinese, Japanese, and Korean (CJK) langauges. The
ngram parser tokenises a words into a contiguous sequence of n-characters.
More information about ngram can be found in MySQL documentation.
While it is designed more for CJK languages, it is also useful to parse
text on languages that use words concatenation, like German or Swedish.
However, it can produce large number of false-positive search results
(albeit with lower rating), so doing proper testing after enabling is
recommended.
This support is not enabled by default. To enable ngram support, add option
into your config.php:
$CFG->dboptions['ftsngram'] = true;
and run FTS scripts to re-index content:
php admin/cli/fts_rebuild_indexes.php
php admin/cli/fts_repopulate_tables.php
TL-21056 Added a warning about incompatible column selection in the report builder
In some cases, a combination of columns selected in a report source may
have caused unexpected results or a broken report. This usually happened
when a column that already relies on the aggregated data internally (e.g.
'Course Short Name' in the 'Program Overview' report) was combined with
columns aggregated via 'Aggregation or grouping' (e.g. count or comma
separated values).
Previously, using this type of combination on certain database types would
have resulted in an error. This change adds a warning to inform users about
the use of any incompatible columns at the time the report is being set up.
TL-21084 + Improved seminar session Date/Time format and export for report builder
New date columns added:
* Session Start Date + Excel/ODS export
* Session Finish Date + Excel/ODS export
* Session Finish Date/Time (linked to activity) + Excel/ODS export
Improved:
* Session Start Date/Time added Excel/ODS export
* Session Finish Date/Time added Excel/ODS export
* Session Start Date/Time (linked to activity) added Excel/ODS export
* Session Start Time added Excel/ODS export
* Session Finish Time added Excel/ODS export
* There is new format for date/time with timezone for report builder:
'2 July 2019, 5 PM
Timezone: Pacific/Auckland'
* All Date/Time columns have a proper ODS/Excel export
TL-21197 + SQLSRV SSL connections now support the 'TrustServerCertificate' option
TL-21115 introduced the ability to force database connections over SSL.
However, SQLSRV required a signed certificate and there was no way to force
the TrustServerCertificate connection option through Totara.
A new dboption 'trustservercertificate' has been added that is passed
through to the 'TrustServerCertificate' option during connection.
TL-21247 Added configuration, a new CLI script and a scheduled task to execute the 'ANALYZE TABLE' query
The new 'analyze_table_task' scheduled task is configured to run every late
night.
It is required that the task be configured to run at off-peak times on
your site.
TL-21359 Fixed the Atto editor incorrectly applying formatting to previously selected text
Fixed an intermittent problem with the Atto editor when formatting was
applied to previously selected text instead of the currently selected text.
The 'mouse select' functionality works reliably now.
TL-21422 + Added a setting to display a seminar description on a course homepage
TL-21426 New SCORM setting has been added that implements session timeout prevention in SCORM player
The new setting "Enable the SCORM player to keep the user session alive" is
available under the Admin settings in the SCORM plugin. It can be used in
order to prevent unwanted session timeouts during SCORM attempts.
Due to the fact that it keeps user session alive while SCORM attempt is in
progress, it may be considered a minor security concern and has been added
to the Security overview report as such.
TL-21435 + Removed typo3 library dependency from the core_text class
TL-21491 + Added [seminarname] and [seminardescription] placeholders for Seminar notifications
The [seminarname] placeholder has been added to replace the
[facetofacename] placeholder, although the system will still support both
[seminarname] and [facetofacename] placeholders. An optional placeholder,
[seminardescription], has also been added.
Bug fixes:
TL-18560 Fixed the 'Publish room for use in other sessions' checkbox in the edit custom room dialogue
When creating or editing a seminar event, it is possible to create a custom
room that can only be used by other events in the same seminar activity.
The editing form for these rooms can include a checkbox (if you have
sufficient permission) that allows them to be easily converted to sitewide
rooms.
This checkbox was always checked, and did not work as expected. This has
been fixed.
TL-19054 + Set notification type when cloning a Report Builder embedded report to a warning instead of an error
TL-19138 Fixed warning message when deleting a report builder saved search
If a report builder saved search is deleted, any scheduled reports that use
that saved search are also deleted. The warning message to confirm the
deletion of the saved search now also correctly displays any scheduled
reports that will also be deleted.
TL-19324 Fixed a bug within select tree where the drop-down would disappear when clicking the scrollbar
Improved the select tree component functionality. The scrollbar within
select tree components works reliably now.
TL-20143 Fixed un-reversable block visiblity change when editing dashboard
When editing a dashboard it was possible to change the 'Administration'
block (or any other block) to only be visible on that dashboard. Once the
change was saved there was no way to change the block to display on 'Any
page' again. This patch allows the setting to be changed back.
TL-20555 Removed Report Builder calls to a non-existent display function 'rb_display_nice_date()'
This is only an issue for any 'custom' created report sources that are
calling the 'rb_display_prog_date()' or 'rb_display_list_to_newline_date()'
display functions directly.
TL-20960 Fixed the completion editor to schedule the recalculation of completion status if necessary
When saving activity completion status in the completion editor, the
reaggregate flag was set to schedule reaggregation of the associated course
completion record only if:
* completion criteria activity is modified in completion editor
* and the flag has not been set since the last cron run
Added a transaction log about 'reaggregation scheduled' if the conditions
above are met.
(If the reaggregate flag is set, then the next cron run will pick up the
corresponding course completion record, recalculate the completion status
and clear the flag.)
TL-20999 + Fixed seminar grade input field to respect the course 'grade_decimalpoints' configuration
TL-21049 + Fixed improperly removed seminar event roles
Seminar refactoring in the previous release created a bug that led to
improper deletion of seminar event roles. This, in turn, caused an error
when attempting to update seminar events that had unassigned event roles.
The bug has been fixed, and improperly deleted roles will be removed
correctly on upgrade.
TL-21055 Fixed the encoding of special HTML characters in tags
Prior to this patch, tag names were HTML-encoded before saving, with no
provision made to prevent re-encoding. This meant that whenever a course
(or program, or certification, or other tag-using component) was edited,
any attached tags would be re-encoded and saved as new tags.
This behaviour has been fixed. Upgrading to this release will fix any tags
that have been encoded multiple times, merging them with their original,
un-encoded selves as necessary.
TL-21074 Fixed logging when restoring a backup including course completion history
Prior to the patch, when restoring the completion history, the restore step
would log the course completion instead of its history (which was not its
responsibility).
With this patch, the completion history restore step now logs the
completion history.
TL-21149 + Images displayed in a static form field no longer cause horizontal scroll
This will require CSS to be regenerated for themes that use LESS
inheritance.
TL-21257 Prevented background controls from being active when viewing program assignments
TL-21261 Fixed the filtering of spaces in the 'Add a block' popover
TL-21275 + Fixed recent regression with double encoded entities in report exports
Replaced relevant report builder calls to format_string() with calls to
the report builder display class format_string which correctly encodes the
string according to the output format.
TL-21277 Fixed compatibility of Behat integration with ChromeDriver 75 and later
TL-21290 + Fixed Report Builder saved searches to be sorted alphabetically in the 'Manage your saved searches' dialog
TL-21293 Fixed an error with visibility checks in the fetch_and_start_tour() external function
Prior to this patch an error was generated when the external function
fetch_and_start_tour() was called and the tour should not be shown to the
user.
The check for whether the tour should be shown to the user or not is now
correctly handled by the JavaScript.
TL-21295 Fixed bug where Grid catalogue course category updates ran interactively instead of as an adhoc task
The category update tasks can take a long time to complete when run
interactively on sites with many courses or programs. The updates have
been moved to run as adhoc tasks instead.
TL-21299 Fixed seminar direct enrolment Terms and Conditions link
TL-21324 Fixed adding approvers to seminar
Prior to this patch, when a new approver was added to a seminar instance,
the previously added approvers (if any) were removed and replaced with the
new one.
With this patch, the previously added approvers (if any) will remain
without change.
TL-21328 Fixed exception thrown when user is not assigned to a program in their Learning Plan
TL-21365 + Removed duplicate records from the cancelled attendees list for seminar events with multiple sessions
TL-21384 Fixed export value of the 'Previous completions' column in the 'Record of Learning: Certifications' report source
HTML markup is no longer displayed in the export file for this column.
TL-21398 Fixed bug causing the front page course to be listed in the Grid course catalogue
Previously, if the site summary on the front page course was edited, the
front page would appear as a learning item in the Grid course catalogue.
The front page course should never appear in the catalogue; this has now
been fixed.
TL-21411 Default program and certification images are now overridable by theme
TL-21412 + Fixed database query logging when ignoring errors in the database transactions
TL-21413 Fixed the user 'full name link' report builder column to take admin role into account
Prior to this patch, the display function for the 'full name link' report
builder columns did not provide a URL for viewing profile at site level.
Even though, the actor was able to view the site level profile of another
user.
With this patch, a profile URL at site level will be produced, if the actor
is able to view the site profile of another user.
TL-21419 Fixed rendering of password fields to ensure they are displayed as mandatory
TL-21454 Fixed export value of the 'Name' column in the 'Organisations' and 'Positions' report sources
HTML markup is no longer displayed in the export file for these columns.
TL-21464 Fixed custom validation of multi-select custom fields to prevent forms incorrectly failing validation
In some cases, validation of multi-select custom fields would try to apply
validation to fields that didn't exist in the current form. This caused the
form to fail validation without a warning, leading to unexpected behaviour
when submitting forms.
TL-21467 Fixed an issue where the 'User tours' menu item could not be added to the administration drop-down menu
TL-21468 Added support for completion records archiving in LTI activity module
TL-21535 Removed display of invalid negative grades when scale grade is selected in the lesson module
When the grading scale is used in the lesson module, the value stored in
the grade column is the database ID of the scale. This was incorrectly
being used to calculate the grade and displayed to the users, when in fact
this grade should not have been calculated when using the scale grading
option.
TL-21536 + Updated the default capabilities of the Trainer and Editing Trainer roles to allow 'mod/facetoface:viewallsessions'
Previously the Trainer and Editing Trainer roles were unable to view the
seminar 'Event details' page without the 'mod/facetoface:viewallsessions'
capability. These roles will now have the capability enabled by default for
new installations. Sites upgrading to this release are recommended to
manually enable the capability for the roles.
TL-21543 Ensured correct capability is checked when viewing 'Comments Monitoring' page
Previously, viewing 'Comments Monitoring' page in the administration menu
checked only the 'moodle/site:viewreports' capability, but accessing the
page required an additional 'moodle/comment:delete' capability. This led to
inconsistencies where users would see the page in their navigation, but
would get an error when trying to access it.
This behaviour has now been made consistent, and users with
'moodle/site:viewreports' capability can access and view the page without
needing to be able to delete the comments. Deleting comments still performs
the 'moodle/comment:delete' capability check.
TL-21564 Fixed an issue with the parameters passed to the check_access_audience_visibility() function
This was not replicable within core code. But if a call to
check_access_audience_visibility() used an integer instead of an object,
the function would try to fetch the expected record from the database using
the integer as an id. That database call was incorrectly formatted
resulting in an error, this has been fixed.
Contributions:
* John Phoon at Kineo Pacific - TL-21564
Release 12.8 (17th July 2019):
API changes:
TL-21370 Method resetAfterTest() in PHPUnit tests has been deprecated
Since the introduction of parallel PHPUnit testing the order of test
execution is no longer defined, which means that tests cannot rely on state
(database and file system) to be carried over from one test into another.
Existing PHPUnit tests need to be updated to prepare data at the beginning
of each test method separately.
Performance improvements:
TL-21541 The source filter for report builder sources has been optimised
Previously the options for this filter were loaded, even when not needed.
This was an expensive operation, often done needlessly. The options are now
only loaded when absolutely needed.
Improvements:
TL-17691 Added site policies to the self-registration process
To comply with GDPR policies, when self-registration is enabled, new users
are now required to accept mandatory site policies before being able to
request a new account, as opposed to the users only viewing the site
policies after registering and logging in.
TL-17745 Improved the program assignments user interface to better handle a large number of assignments
The previous user interface for program assignments would load every
assignment onto a single page, and in some situations where a very large
number of assignments were added to a single program or certification the
page would time out on load. The page now has a search, and filter, and
prevents too many records being loaded at the same time.
TL-20760 Added support for search metadata within Courses, Programs, and Certifications.
New text field added to Courses, Programs, and Certifications settings
where search keywords can be added. These keywords will not be displayed
anywhere on pages but will be used in Full Text Search.
By default these fields are empty.
TL-20761 Added wildcard support for full text search in catalog
When asterisk "*" is placed as a last character of a single keyword in
catalog it will return all partial matches starting with the given
keyword. Asterisk can be placed only in the end of keyword search (this
is limitations of wildcard support in databases) and at this stage only
single keywords are supported (no whitespaces).
TL-20834 Enabled unaccented Full Text Search in catalog
PostgreSQL and MS SQL have built in support for accent insensitive full
text searches.
By default, database configuration is used (typically accent sensitivity is
on).
To change accent sensitivity of full test searches for either PostgreSQL or
MS SQL you can set the
following options in config.php:
$CFG->dboptions['ftsaccentsensitivity'] = true; // Accent sensitive search
$CFG->dboptions['ftsaccentsensitivity'] = false; // Accent insensitive
search
After changing the accent sensitivity setting you need to run the following
scripts in the listed order:
php admin/cli/fts_rebuild_indexes.php
php admin/cli/fts_repopulate_tables.php
TL-20886 Added ngram support for MySQL full text search
Added support of ngram in MySQL. ngram is a Full Text parser that mainly
designed to support Chinese, Japanese, and Korean (CJK) langauges. The
ngram parser tokenises a words into a contiguous sequence of n-characters.
More information about ngram can be found in MySQL documentation.
While it is designed more for CJK languages, it is also useful to parse
text on languages that use words concatenation, like German or Swedish.
However, it can produce large number of false-positive search results
(albeit with lower rating), so doing proper testing after enabling is
recommended.
This support is not enabled by default. To enable ngram support, add option
into your config.php:
$CFG->dboptions['ftsngram'] = true;
and run FTS scripts to re-index content:
php admin/cli/fts_rebuild_indexes.php
php admin/cli/fts_repopulate_tables.php
TL-21056 Added a warning about incompatible column selection in the report builder
In some cases, a combination of columns selected in a report source may
have caused unexpected results or a broken report. This usually happened
when a column that already relies on the aggregated data internally (e.g.
'Course Short Name' in the 'Program Overview' report) was combined with
columns aggregated via 'Aggregation or grouping' (e.g. count or comma
separated values).
Previously, using this type of combination on certain database types would
have resulted in an error. This change adds a warning to inform users about
the use of any incompatible columns at the time the report is being set up.
TL-21247 Added configuration, a new CLI script and a scheduled task to execute the 'ANALYZE TABLE' query
The new 'analyze_table_task' scheduled task is configured to run every late
night.
It is required that the task be configured to run at off-peak times on
your site.
TL-21359 Fixed the Atto editor incorrectly applying formatting to previously selected text
Fixed an intermittent problem with the Atto editor when formatting was
applied to previously selected text instead of the currently selected text.
The 'mouse select' functionality works reliably now.
TL-21426 New SCORM setting has been added that implements session timeout prevention in SCORM player
The new setting "Enable the SCORM player to keep the user session alive" is
available under the Admin settings in the SCORM plugin. It can be used in
order to prevent unwanted session timeouts during SCORM attempts.
Due to the fact that it keeps user session alive while SCORM attempt is in
progress, it may be considered a minor security concern and has been added
to the Security overview report as such.
Bug fixes:
TL-18560 Fixed the 'Publish room for use in other sessions' checkbox in the edit custom room dialogue
When creating or editing a seminar event, it is possible to create a custom
room that can only be used by other events in the same seminar activity.
The editing form for these rooms can include a checkbox (if you have
sufficient permission) that allows them to be easily converted to sitewide
rooms.
This checkbox was always checked, and did not work as expected. This has
been fixed.
TL-19138 Fixed warning message when deleting a report builder saved search
If a report builder saved search is deleted, any scheduled reports that use
that saved search are also deleted. The warning message to confirm the
deletion of the saved search now also correctly displays any scheduled
reports that will also be deleted.
TL-19324 Fixed a bug within select tree where the drop-down would disappear when clicking the scrollbar
Improved the select tree component functionality. The scrollbar within
select tree components works reliably now.
TL-20143 Fixed un-reversable block visiblity change when editing dashboard
When editing a dashboard it was possible to change the 'Administration'
block (or any other block) to only be visible on that dashboard. Once the
change was saved there was no way to change the block to display on 'Any
page' again. This patch allows the setting to be changed back.
TL-20555 Removed Report Builder calls to a non-existent display function 'rb_display_nice_date()'
This is only an issue for any 'custom' created report sources that are
calling the 'rb_display_prog_date()' or 'rb_display_list_to_newline_date()'
display functions directly.
TL-20960 Fixed the completion editor to schedule the recalculation of completion status if necessary
When saving activity completion status in the completion editor, the
reaggregate flag was set to schedule reaggregation of the associated course
completion record only if:
* completion criteria activity is modified in completion editor
* and the flag has not been set since the last cron run
Added a transaction log about 'reaggregation scheduled' if the conditions
above are met.
(If the reaggregate flag is set, then the next cron run will pick up the
corresponding course completion record, recalculate the completion status
and clear the flag.)
TL-21055 Fixed the encoding of special HTML characters in tags
Prior to this patch, tag names were HTML-encoded before saving, with no
provision made to prevent re-encoding. This meant that whenever a course
(or program, or certification, or other tag-using component) was edited,
any attached tags would be re-encoded and saved as new tags.
This behaviour has been fixed. Upgrading to this release will fix any tags
that have been encoded multiple times, merging them with their original,
un-encoded selves as necessary.
TL-21074 Fixed logging when restoring a backup including course completion history
Prior to the patch, when restoring the completion history, the restore step
would log the course completion instead of its history (which was not its
responsibility).
With this patch, the completion history restore step now logs the
completion history.
TL-21257 Prevented background controls from being active when viewing program assignments
TL-21261 Fixed the filtering of spaces in the 'Add a block' popover
TL-21277 Fixed compatibility of Behat integration with ChromeDriver 75 and later
TL-21293 Fixed an error with visibility checks in the fetch_and_start_tour() external function
Prior to this patch an error was generated when the external function
fetch_and_start_tour() was called and the tour should not be shown to the
user.
The check for whether the tour should be shown to the user or not is now
correctly handled by the JavaScript.
TL-21295 Fixed bug where Grid catalogue course category updates ran interactively instead of as an adhoc task
The category update tasks can take a long time to complete when run
interactively on sites with many courses or programs. The updates have
been moved to run as adhoc tasks instead.
TL-21299 Fixed seminar direct enrolment Terms and Conditions link
TL-21324 Fixed adding approvers to seminar
Prior to this patch, when a new approver was added to a seminar instance,
the previously added approvers (if any) were removed and replaced with the
new one.
With this patch, the previously added approvers (if any) will remain
without change.
TL-21328 Fixed exception thrown when user is not assigned to a program in their Learning Plan
TL-21361 Fixed deletion process for Seminar event custom room
If Seminar event has more then one sessions with the same date, different
hours and one custom room for these sessions, the system was unable to
delete the room if a user deletes the seminar event. The issue has been
fixed.
TL-21384 Fixed export value of the 'Previous completions' column in the 'Record of Learning: Certifications' report source
HTML markup is no longer displayed in the export file for this column.
TL-21398 Fixed bug causing the front page course to be listed in the Grid course catalogue
Previously, if the site summary on the front page course was edited, the
front page would appear as a learning item in the Grid course catalogue.
The front page course should never appear in the catalogue; this has now
been fixed.
TL-21411 Default program and certification images are now overridable by theme
TL-21413 Fixed the user 'full name link' report builder column to take admin role into account
Prior to this patch, the display function for the 'full name link' report
builder columns did not provide a URL for viewing profile at site level.
Even though, the actor was able to view the site level profile of another
user.
With this patch, a profile URL at site level will be produced, if the actor
is able to view the site profile of another user.
TL-21419 Fixed rendering of password fields to ensure they are displayed as mandatory
TL-21454 Fixed export value of the 'Name' column in the 'Organisations' and 'Positions' report sources
HTML markup is no longer displayed in the export file for these columns.
TL-21460 Fixed Seminar previous events using time period and room filter
The previous seminar events with time period support Room filter.
Previously viewing a previous seminar events and adding a Room filter will
ignore the filter.
TL-21464 Fixed custom validation of multi-select custom fields to prevent forms incorrectly failing validation
In some cases, validation of multi-select custom fields would try to apply
validation to fields that didn't exist in the current form. This caused the
form to fail validation without a warning, leading to unexpected behaviour
when submitting forms.
TL-21467 Fixed an issue where the 'User tours' menu item could not be added to the administration drop-down menu
TL-21468 Added support for completion records archiving in LTI activity module
TL-21535 Removed display of invalid negative grades when scale grade is selected in the lesson module
When the grading scale is used in the lesson module, the value stored in
the grade column is the database ID of the scale. This was incorrectly
being used to calculate the grade and displayed to the users, when in fact
this grade should not have been calculated when using the scale grading
option.
TL-21543 Ensured correct capability is checked when viewing 'Comments Monitoring' page
Previously, viewing 'Comments Monitoring' page in the administration menu
checked only the 'moodle/site:viewreports' capability, but accessing the
page required an additional 'moodle/comment:delete' capability. This led to
inconsistencies where users would see the page in their navigation, but
would get an error when trying to access it.
This behaviour has now been made consistent, and users with
'moodle/site:viewreports' capability can access and view the page without
needing to be able to delete the comments. Deleting comments still performs
the 'moodle/comment:delete' capability check.
TL-21564 Fixed an issue with the parameters passed to the check_access_audience_visibility() function
This was not replicable within core code. But if a call to
check_access_audience_visibility() used an integer instead of an object,
the function would try to fetch the expected record from the database using
the integer as an id. That database call was incorrectly formatted
resulting in an error, this has been fixed.
Contributions:
* John Phoon at Kineo Pacific - TL-21564
Release 11.17 (17th July 2019):
API changes:
TL-21370 Method resetAfterTest() in PHPUnit tests has been deprecated
Since the introduction of parallel PHPUnit testing the order of test
execution is no longer defined, which means that tests cannot rely on state
(database and file system) to be carried over from one test into another.
Existing PHPUnit tests need to be updated to prepare data at the beginning
of each test method separately.
Performance improvements:
TL-21541 The source filter for report builder sources has been optimised
Previously the options for this filter were loaded, even when not needed.
This was an expensive operation, often done needlessly. The options are now
only loaded when absolutely needed.
Improvements:
TL-17691 Added site policies to the self-registration process
To comply with GDPR policies, when self-registration is enabled, new users
are now required to accept mandatory site policies before being able to
request a new account, as opposed to the users only viewing the site
policies after registering and logging in.
TL-21359 Fixed the Atto editor incorrectly applying formatting to previously selected text
Fixed an intermittent problem with the Atto editor when formatting was
applied to previously selected text instead of the currently selected text.
The 'mouse select' functionality works reliably now.
Bug fixes:
TL-19138 Fixed warning message when deleting a report builder saved search
If a report builder saved search is deleted, any scheduled reports that use
that saved search are also deleted. The warning message to confirm the
deletion of the saved search now also correctly displays any scheduled
reports that will also be deleted.
TL-20143 Fixed un-reversable block visiblity change when editing dashboard
When editing a dashboard it was possible to change the 'Administration'
block (or any other block) to only be visible on that dashboard. Once the
change was saved there was no way to change the block to display on 'Any
page' again. This patch allows the setting to be changed back.
TL-20555 Removed Report Builder calls to a non-existent display function 'rb_display_nice_date()'
This is only an issue for any 'custom' created report sources that are
calling the 'rb_display_prog_date()' or 'rb_display_list_to_newline_date()'
display functions directly.
TL-21055 Fixed the encoding of special HTML characters in tags
Prior to this patch, tag names were HTML-encoded before saving, with no
provision made to prevent re-encoding. This meant that whenever a course
(or program, or certification, or other tag-using component) was edited,
any attached tags would be re-encoded and saved as new tags.
This behaviour has been fixed. Upgrading to this release will fix any tags
that have been encoded multiple times, merging them with their original,
un-encoded selves as necessary.
TL-21074 Fixed logging when restoring a backup including course completion history
Prior to the patch, when restoring the completion history, the restore step
would log the course completion instead of its history (which was not its
responsibility).
With this patch, the completion history restore step now logs the
completion history.
TL-21277 Fixed compatibility of Behat integration with ChromeDriver 75 and later
TL-21293 Fixed an error with visibility checks in the fetch_and_start_tour() external function
Prior to this patch an error was generated when the external function
fetch_and_start_tour() was called and the tour should not be shown to the
user.
The check for whether the tour should be shown to the user or not is now
correctly handled by the JavaScript.
TL-21328 Fixed exception thrown when user is not assigned to a program in their Learning Plan
TL-21413 Fixed the user 'full name link' report builder column to take admin role into account
Prior to this patch, the display function for the 'full name link' report
builder columns did not provide a URL for viewing profile at site level.
Even though, the actor was able to view the site level profile of another
user.
With this patch, a profile URL at site level will be produced, if the actor
is able to view the site profile of another user.
TL-21419 Fixed rendering of password fields to ensure they are displayed as mandatory
TL-21464 Fixed custom validation of multi-select custom fields to prevent forms incorrectly failing validation
In some cases, validation of multi-select custom fields would try to apply
validation to fields that didn't exist in the current form. This caused the
form to fail validation without a warning, leading to unexpected behaviour
when submitting forms.
TL-21468 Added support for completion records archiving in LTI activity module
TL-21535 Removed display of invalid negative grades when scale grade is selected in the lesson module
When the grading scale is used in the lesson module, the value stored in
the grade column is the database ID of the scale. This was incorrectly
being used to calculate the grade and displayed to the users, when in fact
this grade should not have been calculated when using the scale grading
option.
TL-21543 Ensured correct capability is checked when viewing 'Comments Monitoring' page
Previously, viewing 'Comments Monitoring' page in the administration menu
checked only the 'moodle/site:viewreports' capability, but accessing the
page required an additional 'moodle/comment:delete' capability. This led to
inconsistencies where users would see the page in their navigation, but
would get an error when trying to access it.
This behaviour has now been made consistent, and users with
'moodle/site:viewreports' capability can access and view the page without
needing to be able to delete the comments. Deleting comments still performs
the 'moodle/comment:delete' capability check.
TL-21564 Fixed an issue with the parameters passed to the check_access_audience_visibility() function
This was not replicable within core code. But if a call to
check_access_audience_visibility() used an integer instead of an object,
the function would try to fetch the expected record from the database using
the integer as an id. That database call was incorrectly formatted
resulting in an error, this has been fixed.
Contributions:
* John Phoon at Kineo Pacific - TL-21564
Release 10.23 (17th July 2019):
Bug fixes:
TL-19138 Fixed warning message when deleting a report builder saved search
If a report builder saved search is deleted, any scheduled reports that use
that saved search are also deleted. The warning message to confirm the
deletion of the saved search now also correctly displays any scheduled
reports that will also be deleted.
TL-21277 Fixed compatibility of Behat integration with ChromeDriver 75 and later
TL-21341 Changed z-index of Totara dialogs to match Bootstrap 3 modal levels
Previously the modals 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).
Note: This is a backport of TL-18941
This will require CSS to be regenerated for themes that use LESS
inheritance.
TL-21419 Fixed rendering of password fields to ensure they are displayed as mandatory
Release 9.34 (17th July 2019):
Bug fixes:
TL-19138 Fixed warning message when deleting a report builder saved search
If a report builder saved search is deleted, any scheduled reports that use
that saved search are also deleted. The warning message to confirm the
deletion of the saved search now also correctly displays any scheduled
reports that will also be deleted.
