Totara Release Notes

Totara 2.9.0 Released 3rd November 2015

 
Sam Hemelryk
Totara 2.9.0 Released 3rd November 2015
by Sam Hemelryk - Tuesday, 3 November 2015, 9:12 AM
Group Totara

We are pleased to announce the arrival of Totara 2.9.0!

This release contains many new features, improvements to existing features, and accessibility improvements.

A big thank you goes out to all those who have contributed to this release:

  • Andrew Hancox at Synergy Learning - TL-6454
  • Dennis Heany at Learning Pool - TL-6525
  • Ryan Lafferty at Learning Pool - TL-4485
  • Eugene Venter at Catalyst NZ - TL-6022, TL-6023, TL-6308, TL-6453, TL-6496, TL-6497, TL-7529
  • Maccabi Healthcare Services a client of Kineo Israel - TL-6684
  • Pavel Tsakalidis at Kineo UK - TL-6531
  • Russell England at Vision NV - TL-5394

For information on what has change please review the changelog below.

Kind regards

Sam Hemeryk

 

Release 2.9.0 (3rd November 2015):

New features:

    TL-2250        New options to turn off extension requests for programs and certifications

                   It is now possible to disable program/certification extension requests both
                   for the whole system and for individual instances via the edit details page.

    TL-2565        New "Fixed date" custom user profile field type

                   A fixed date new custom user profile field type has been added.
                   This new field type is designed to store absolute dates for which
                   timezones are irrelevant and not applied.
                   An example of where this field is applicable is your birthday.
                   Regardless of your location you birthday is the same.

                   Data for this date field is stored as midday UTC for the selected date.

    TL-7098        Dynamic audience rules for the new fixed date custom user profile field

                   These rules include being able to define an audience according to their
                   custom profile field date being before or after a fixed date.
                   There are also duration-based rules, meaning they can be set according to
                   the profile dates being within or before a previous number of days, as well
                   as within or after an upcoming number of days.

                   Notes:
                      * With duration-based rules audiences will be updated at midday UTC.

    TL-4485        New personal goal types with custom fields

                   Personal goal types can now be defined and custom fields added to them.
                   Preexisting goal types have been renamed to company goal types and continue to
                   function as they did previously.
                   Personal goal types differ from company goal types in that the custom field
                   values entered for a personal goal will be associated with the user whom
                   the personal goal belongs to.

                   Thanks to Ryan Lafferty at Learning Pool for the contribution.

    TL-5094        Support for anonymous 360 feedback

                   We have added a new "Anonymous" setting when creating or editing a
                   360 Feedback.
                   Enabling this hides the name of responders to the 360 Feedback.
                   Responders can see whether a 360 Feedback is anonymous in the header of the
                   response page, along with the number of requests sent.
                   This setting does restrict some functionality to maintain anonymity:

                      * When enabled, requests for feedback can only be added, they can not be
                        cancelled. This is to stop users from potentially cancelling all
                        requests in order to figure out who has replied.
                      * Reminders can still be sent but who will receive them will no
                        longer be displayed to you.

                   While we have endeavoured to enforce anonymity please be aware that
                   responders are still recorded and there are ways to get this information
                   out of the system, such as:
                      * Site logs.
                      * Malicious code written to reveal it.
                      * Direct database investigation.
                      * Activity logs
                      * Blocks displaying Recently logged in users

    TL-5097        New options to disable changes in membership for dynamic audiences

                   With this feature you can now control if users are automatically added or
                   removed from a dynamic audience's membership when they meet, or no longer
                   meet, the criteria defined by the rule set.
                   This is facilitated with a new setting "Automatically update membership"
                   which can be found on the rule sets tab when editing a dynamic audience.
                   This new setting has two options, both of which are enabled by default:

                      * Make a user a member when they meet rule sets criteria
                      * Remove a user's membership when they no longer meet the rule sets
                        criteria

                   Toggling these settings allows you to prevent new members being added to
                   the audience and/or prevent users from being removed from the audience.

    TL-5818        Report builder reports can now be cloned

                   Added a new action that clones reports to the Report builder manage
                   reports page. Cloning a report creates a full copy of the report
                   and its columns, filters and settings. It does not copy any scheduling
                   or caching that has been set up for the report.
                   Both user created and embedded reports can be cloned.

                   In order to clone a report the user must have the
                   totara/reportbuilder:managereports capability.

    TL-6023        New program completion block

                   A new program completion block has been added in this release that lists
                   one or  more selected programs and the users completion status for each.
                   If no programs have been selected the block is not displayed.

                   Thanks to Eugene Venter at Catalyst NZ for the contribution

    TL-6525        New report table block

                   Added new block that displays tabular data belonging to a selected Report
                   builder report.
                   Optionally a saved search for the report can also be selected to limit the
                   data shown in the block.

                   Notes:
                      * Backward incompatibility of saved searches with third party filters
                        might occur. If saved searches do not work with your third party
                        filters, please contact the developer of the filters to update them.
                      * Only user created reports can be selected. Embedded reports cannot
                        be used within this block at present.

                   Thanks to Dennis Heany at Learning Pool for the contribution.

    TL-6621        Report Builder export is now pluggable

                   Reportbuilder export code was abstracted into a new plugin type 'tabexport'
                   located in folder '/core/tabexport'.
                   Tabular export plugins may now have settings and administrator can disable
                   individual export plugins.
                   New plugins have to include a class named '\tabexport_xyz\writer' that extend
                   base class '\totara_core\tabexport_writer'.
                   The base class contains a basic developer documentation, included plugins
                   can be used as examples.

    TL-6684        Added new global report restrictions

                   Global report restrictions allows rules to be applied to a report
                   restricting the results to those belonging to the users you are allowed to
                   view.
                   This allows you to define relationships between groups of users limiting
                   the information a user can see to just information belonging to the
                   permitted group or groups of users.

                   Notes:
                      * All users including the administrator can be restricted.
                      * Global report restrictions are only supported by report sources where
                        data can be seen as owned by one or more users.
                      * There are internal limitations for some database backends. For example
                        MySQL is limited to 61 tables in one join which may limit the maximum
                        number of items in each restriction.
                      * Active restrictions may impact the performance of reports.
                      * Report caching is not compatible with Global Report Restrictions and
                        is ignored when restrictions are active.

                   Thanks to Maccabi Healthcare Services for funding the development of this
                   feature.

    TL-6942        Define and use different flavours of Totara during installation and upgrade

                   A new feature set including plugin type has been added called Flavours.
                   Flavours can change default settings, the sites actual settings, and force
                   settings into a specific state.
                   During installation and upgrade the selected Flavour is applied allowing it
                   to control which settings get turned on or off.
                   It is also given the opportunity to execute code post installation or
                   upgrade.

                   Notes:
                      * Sites that do not use a specific flavour will default to the
                        Enterprise flavour that ships with Totara.
                        This flavour does not make any configuration changes.
                      * This feature was added for the benefit of Totara Cloud to allow us to
                        control cloud functionality. It is not used by default by Totara and
                        provides no new functionality

    TL-7021        Added a new setting to the advanced features page that enables/disables Competencies
    TL-7105        Added optional support for producing PDF snapshots of Appraisals via wkhtmltopdf executable
    TL-7246        Totara Connect Client

                   Totara Connect makes it possible to connect one or more Totara LMS or
                   Totara Social installations to a master Totara LMS installation.
                   This connection allows for users, and audiences to be synchronised from the
                   master to all connected client sites.
                   Synchronised users can move between the connected sites with ease
                   thanks to the single sign on system accompanying Totara Connect.


Improvements:

    TL-2368        Capability to manage reminders added to courses

                   A new capability moodle/course:managereminders has been created to allow
                   fine grained control over which roles can manage reminders within a
                   course.
                   Prior to this capability the moodle/course:update capability was used.
                   Now both capabilities are required.
                   Only site managers are given this capability by default.

    TL-5020        Change of 'from' email address when sending emails

                   Now all Totara messages (Email and alerts) use the system wide
                   "noreply" address as the "From" address.
                   This can be configured by the admin via 'Site administration > Plugins >
                   Message outputs > Email > No reply address'.

                   In the case of Facetoface, where there is another setting in 'Site
                   administration > Plugins > Activity modules > Facetoface > Sender From' the
                   system will send Facetoface messages from that address if it is set, or from
                   the no-Reply address otherwise.

    TL-5088        Logo now scales for smaller screens

                   When using the Custom Totara Responsive theme with a custom logo uploaded,
                   it now scales on smaller screens

    TL-5239        Added several new columns to the site log report source

                   This change introduced several new columns to the site log report source:

                      * A new column "Event name with link"
                      * A new column "Context"
                      * A new column "Component"
                      * A new filter "Event name"

                   This now facilitates filtering by event name (for example this report can
                   can show only "Course Completed" events) as well as providing a column that
                   links to event source (corresponding course, report, user, etc).

    TL-5356        Added new user columns and filters to the Messages report source

                   The standard user information columns and filters have been added to the
                   messages report source.
                   This allows you to find out information such as who the message was sent
                   to.

    TL-5362        Assessor, Regional Manager and Regional Trainer roles were removed

                   Previously roles Assessor, Regional Manager and Regional Trainer were
                   automatically created during Totara installation. These roles did not have
                   any special capabilities by default.
                   As of Totara 2.9.0 these roles will no longer be automatically created.
                   If you need them you may easily create them and add any required
                   capabilities.

    TL-5394        The initialdisplay setting can now be passed when creating embedded reports

                   Thanks to Russell England at Vision NV for the contribution.

    TL-5511        Added pagination to the bottom of Report builder reports

                   When viewing a report pagination is now shown both above and below the
                   report.

    TL-5954        Added a link between the start and finish date pickers for Facetoface sessions

                   The start and finish date pickers are now linked so when changing the start
                   date the finish date will automatically change to the same day.

    TL-6022        Added the AND operator to course set operators in Programs and Certifications

                   This allows people to create rules such as "Learner must complete one of
                   course1, course2, course3 AND one of course4, course5, course6".

                   Thanks to Eugene Venter at Catalyst NZ for the contribution.

    TL-6154        Refactor filters to use named constants instead of numbers

                   Previously filter operators within code were represented just as integers.
                   This change introduced new constants to make the handling of these
                   operators much clearer.

    TL-6204        Customisable font when exporting a report to PDF

                   A new setting has been introduced that allows the font used within Report
                   builder PDF exports to be customised.
                   This allows those on non-standard installations to work around required
                   fonts that they do not have.

    TL-6206        Improvements of CSV export in Report builder

                   CSV export now starts sending data immediately instead of waiting for the
                   whole file to be generated.
                   The total processing time is the same, memory usage is decreased and users
                   may download the file in the background.

    TL-6308        Improve control over who can approve Facetoface attendance requests

                   A new capability mod/facetoface:approveanyrequest has been added that is
                   now required in order to approve Facetoface session attendance request.
                   Prior to this patch only site administrators or a user's assigned manager
                   could approve a request. Now anyone with this capability can also approve
                   an attendance request.
                   This capability is not given to anyone by default.

                   Thanks to Eugene Venter at Catalyst NZ for the contribution.

    TL-6383        Improved accessibility of the general settings page

                   Previously there was an empty label associated with the warnings checkbox
                   following the "Send notifications for" label. This has now been improved so
                   that "Send notifications for" is now a legend and the "Errors" and
                   "Warnings" checkboxes now have labels correctly assigned to them.

    TL-6413        Report builder sources may now be marked as ignored

                   The Report builder report source API has been extended so that report
                   sources can now inform Report Builder that they should be ignored.
                   Report builder can then choose to treat an ignored source differently, at
                   the very least ensuring that it is not accessible.

                   This can be used in situations such as when the source depends upon a
                   plugin or feature being enabled.
                   Previously this would could lead to errors if someone tried to use the
                   source.
                   Now it is dealt with gracefully.

    TL-6414        Added several new placeholders to Facetoface notifications

                   The following placeholders were added for notification emails regarding
                   Facetoface sessions:

                      * [lateststarttime] - Start time of the session. If there are multiple
                        session dates it will use the last one.
                      * [lateststartdate] - Date at the start of the session. If there are
                        multiple session dates it will use the last one.
                      * [latestfinishtime] - Finish time of the session. If there are multiple
                        session dates it will use the last one.
                      * [latestfinishdate] - Date at the end of the session. If there are
                        multiple session dates it will use the last one.

                   These can be used in conjunction with existing placeholders that use the
                   first session date. For example: "[starttime], [startdate] to
                   [latestfinishtime], [latestfinishdate]" will give the overall start and
                   finish times of a multi-date session.

    TL-6451        Added option in HR Import to force password reset when undeleting users

                   Previously, users would have their password reset if it was not provided in
                   the same import. This change makes the reset optional. If a password is
                   provided in the import then it will still take precedence and the reset
                   will not occur.

    TL-6453        Added a time due column to the program and certification completion report sources

                   Thanks to Eugene Venter at Catalyst NZ for the contribution

    TL-6454        Improved the robustness of Facetoface archive tests

                   Thanks to Andrew Hancox at Synergy Learning for the contribution.

    TL-6496        Added several new filters to the certification overview report source

                   The following filters have been added to the certification overview report
                   source:

                      * Add status
                      * Renewal status
                      * Time completed

                   Thanks to Eugene Venter at Catalyst NZ for the contribution.

    TL-6497        Added a timedue filter to the program overview report source

                   Thanks to Eugene Venter at Catalyst NZ for the contribution.

    TL-6531        Improved the performance of prog_get_all_programs

                   Thanks to Pavel Tsakalidis at Kineo UK for the contribution

    TL-6605        Improved the alignment of advanced checkbox labels in all themes
    TL-6629        DOMPDF library has been updated to 0.6.1

                   DOMPDF has been upgraded from 0.6.0 to 0.6.1.
                   This upgrade includes a large number of fixes to both bugs and stability.

    TL-6655        Removed legacy md5 hashing from lessons and lesson user / group overrides
    TL-6667        Course completion now correctly considers activity completion without a grade as complete

                   This patch fixes an inconsistency in how activity completion gets treated.
                   Prior to this patch if you achieved activity completion without getting a
                   passing grade for that activity some places would consider it as complete
                   and others would not.
                   This is now consistently and correctly considered to be complete by all
                   areas of Totara that work with activity completion.

    TL-6676        Improved responsive design when viewing an appraisal
    TL-6761        Updated jQuery dataTables plugin from version 1.9.4 to 1.10.7
    TL-6777        Minified Totara specific JavaScript files

                   Currently there are a large number of JavaScript files that are transferred
                   from your Totara server that are not minified. This issue minifies files
                   for Totara dialogues, and ensures the jQuery plugin files that we use are
                   minified. The minified files are only delivered if the cachejs
                   configuration value is set to true (as it should be on production sites).

                   Minified files reduce the amount of data that is transferred from the
                   server to the browser, resulting in faster page loading times (although
                   this may not be noticeable).

    TL-6880        Role definition page now shows the number of users having each role
    TL-6913        Reviewed language strings that used Moodle and improved them where required
    TL-6915        Forum post emails are now using "totaraforumX" in list ids.
    TL-6919        Installation and upgrade reliability improvements

                   The following changes have been made to the installation and upgrade
                   process:

                   * Fixes and improvements in install and upgrade logic
                   * Fixed Totara plugin environment tests
                   * Fixed missing 'canvas' theme when upgrading from Moodle

    TL-6920        Session Cookie names now use Totara as a prefix
    TL-6926        Improved memcached cache store prefix handling

                   Prior to this patch if no prefix was specified and the settings for the
                   cache store instance were changed, the cache environment could become
                   corrupt and the cache would need to be manually purged.
                   Now if no prefix is specified, a hash is generated from the store instance
                   settings and this is used as the prefix.
                   As the prefix will now change when the settings change, keys cannot conflict
                   and this avoids any need to manually purge the cache.
                   Those who have a prefix set will still need to manually manage their
                   memcached purging if they change any settings.

    TL-6931        Curl requests made by Totara now use a specific TotaraBot agent string
    TL-6943        Support generating of tree structures when bulk adding hierarchy items

                   It is now possible to use the bulk add functionality to generate a tree
                   structure instead of just a flat list of new items. Use 2 spaces in front
                   of the item name to indent an item by one level.

    TL-6961        Each custom field type is now managed by a single capability

                   In Totara 2.7 and all older versions every custom field type had three
                   capabilities used to manage them (create, edit, delete).
                   This improvement sees the capabilities simplified so that each custom field
                   type uses only a single capability for management instead of the three.
                   This ensures that any actions taken by a user can also be undone, it also
                   greatly simplifies management of capabilities around custom field types.
                   The old create, edit, and delete capabilities have been removed.

                   The following is a list of custom field types and the new capability that
                   is used to manage them:

                   * Facetoface custom fields managed by mod/facetoface:managecustomfield
                   * Course custom fields managed by totara/core:coursemanagecustomfield
                   * Program and Certification custom fields managed by
                     totara/core:programmanagecustomfield
                   * Competency custom fields managed by
                     totara/hierarchy:competencymanagecustomfield
                   * Goal custom fields managed by totara/hierarchy:goalmanagecustomfield
                   * Organisation custom fields managed by
                     totara/hierarchy:organisationmanagecustomfield
                   * Position custom fields managed by
                     totara/hierarchy:positionmanagecustomfield

    TL-7013        Installer now only shows available language packs

                   Prior to this change the installation process showed all possible language
                   packs, rather than just those that were available.

    TL-7019        Dashboard functionality can now be disabled via advanced features
    TL-7022        My Team functionality can now be disabled via advanced features
    TL-7031        The URL download repository is now disabled by default on new installations

                   This change is intended to improve security. We strongly recommend that those sites
                   which are upgrading also disable this repository, unless they are actually using its
                   functionality.
                   The repository itself allows content to be downloaded from the internet and
                   used within the site.
                   Whilst measures are taken to ensure the download and use of internet
                   content is handled safely and securely it is not possible to completely
                   inoculate the system from threat.
                   We recommend putting the Totara server into a DMZ if this repository is
                   enabled and used.

    TL-7038        Report default sort order is used consistently after report updates
    TL-7072        Converted Facetoface predefined room JS into an AMD module

                   The previously defined totaraDialog_handler_addpdroom has been converted to
                   an AMD module allowing the module to be loaded only when needed.

    TL-7140        Improved the display of Totara table borders such as those used for embedded reports
    TL-7159        Facetoface predefined rooms are no longer required to specify a name, building or address

                   The capacity field is still required.

    TL-7162        Converted the myappraisal JS to an AMD module

                   The M.totara_appraisal_myappraisal JavaScript code has been converted from
                   a statically loaded JS file to an AMD module.
                   This allows the JS to be loaded dynamically with much greater ease and
                   unlocks the benefits AMD brings such as minification and organisation.

                   This change removes the totara/appraisal/js/myappraisal.js file.

    TL-7197        Converted plan templates JS into an AMD module

                   The totara_plan_template JS class has been converted into an AMD module
                   allowing it to be required only when needed.

    TL-7198        Converted the totara_plan_component JS into an AMD module

                   The totara_plan_component JavaScript class has been converted into an AMD
                   module allowing it to be required only when needed.

                   The totara/plan/component.js file was removed as part of this change.

    TL-7236        Login prompt state is now maintained across invalid attempts

                   The state of the the login prompt is now maintained upon a failed
                   authentication attempt.
                   The username entered by the user will remain in the username field, and the
                   state of the remember username checkbox will persist.

    TL-7237        Serving of user submitted files has been hardened to improve security

                   The headers used when serving user submitted files has been improved.
                   Mime type handling has been improved and the following headers are now
                   included when the file being served is forcing a download:

                   * X-Content-Type-Options: nosniff
                   * X-Frame-Options: deny
                   * X-XSS-Protection: 1; mode=block

    TL-7244        Converted M.totara_cohort_assignroles JS into an AMD module

                   The file totara/cohort/assignroles.js has been removed as part of this
                   change.

    TL-7293        Session timezone is now used for date fields when editing Facetoface session
    TL-7297        Guest access is now disabled in new installations
    TL-7331        New framework for improved error message handling when AJAX calls fail

                   Previously there was no framework for when a jQuery AJAX call fails.
                   This can leave a number interactions in Totara with nondescript errors.
                   This fix provides a framework for errors to be caught, handled and
                   displayed. It also provides debugging information when debug has been
                   turned on allowing JS issues to be investigated with much more ease.

    TL-7384        Begin phasing out the "Hide" option for advanced Totara features

                   Previously many of the advanced features added in Totara could be set to
                   three states enabled, disabled, hidden.
                   The hidden state in many situations was poorly and inconsistently
                   implemented.
                   After discussions it was decided that the hidden state would be removed in
                   favour of a more straight forward enabled/disabled state.

                   Any sites using the "Hide" state will continue to experience the same
                   behaviour they have previously.
                   However the "Hide" state is no longer made available for selection.
                   In the future support for the "Hide" state will be removed.

    TL-7388        Improved reliability of the Atto editor superscript and subscript buttons
    TL-7389        Improved rtl language support for the collapse block icon

                   This introduces a new icon that points to the right in right to left
                   languages (such as Hebrew) when a block is collapsed (t/switch_plus_rtl)

    TL-7432        Added a new capability to allow marking of course completion for related users

                   A new capability has been added totara/core:markusercoursecomplete which
                   can be assigned within the user context and allows a user with that
                   capability to mark another user's required learning courses as complete.
                   Previously, this was only possible for managers marking completion for
                   their staff.

                   This new capability is not given to anyone by default.

    TL-7482        Updated the TCPDF library from 6.2.6 to 6.2.12
    TL-7510        Improved the flow of links within the Appraisal report source
    TL-7524        Improved the secure page layout within standard Totara responsive
    TL-7529        Fixed handling of RPL records when resetting or deleting a course or its completions

                   This change fixes how RPL records are handled when a course is reset by a
                   certification, deleted or reset by a user, or course completions unlocked
                   by a teacher.

                   When deleting or resetting a course, RPL completions are now also deleted
                   correctly. Previously these were not removed. An upgrade step will safely
                   remove invalid data records for deleted courses.

                   In 2.9.0 when a users course completion gets reset by a certification
                   window opening, all course and activity RPL completions will be removed.

                   As before, when a teacher unlocks course completion criteria and selects to
                   delete, course and activity RPL records will be kept and still count
                   towards a users completion.

                   Thanks to Eugene Venter at Catalyst NZ for the contribution

    TL-7530        Improved the display of error messages for date controls
    TL-7589        Added timezone support to plans and plan templates
    TL-7682        Improved the date display code to ensure it is consistent across all platforms

                   Language packs may now use all strftime parameters as listed here
                   http://php.net/manual/en/function.strftime.php


Accessibility improvements:

    TL-5275        Removed the fieldset surrounding the action buttons within a form

                   Previously the action (submit + cancel) buttons within a form were being
                   printed within a fieldset.
                   In order to improve accessibility across all forms by reducing the number
                   of nested fieldsets this particular fieldset was removed.

    TL-6234        Removed the HTML table used for layout when adding badge criteria

                   This patch also improves accessibility around single selects.

    TL-6239        Improved accessibility when setting a custom room

                   When editing a Facetoface session, the form elements for setting a custom
                   room had labels that were not correctly linked to their HTML elements, and
                   had an unnecessary HTML table.

    TL-6291        Improved the accessibility when viewing learning plans
    TL-6294        Removed the table used for layout on the course participants page

                   When viewing participants within a course, the filters at the top of the
                   page were within an HTML table. This has been removed and replaced with a
                   series of div elements making the page more accessible and responsive.

    TL-6310        Removed incorrect label on the Certificate settings page
    TL-6320        Replaced invalid use of HTML labels within the add activity dialog
    TL-6337        Removed the HTML table used on the group user management page for courses
    TL-6380        Improved accessibility of question bank export
    TL-6381        Improved accessibility of question bank import
    TL-6382        The fieldset template within forms now uses a fieldset

                   There were a number of form fieldsets that were incorrectly used, making a
                   number of web pages inaccessible to screen readers.
                   This change improves accessibility considerably but is likely to cause
                   display problems for themes that have restyled forms.
                   A good place to look at check your theme styles would be by reviewing the
                   form used when adding a Facetoface session.

    TL-6388        Improved accessibility on the users badge profile setting page
    TL-6390        Removed empty labels and legend attributes from all form element
    TL-6394        Removed the HTML label from admin settings when it was not referencing anything

                   What were formerly HTML label elements are now spans with the admin-label
                   css class. Any CSS styles that were applied to HTML labels (in the admin
                   area), will also need to be applied to this class (adjusting the font-size
                   will need to override ".form-item .admin-label")

    TL-6423        Removed the HTML table within a course user details view
    TL-6585        Improved accessibility uploading images into the Certificate module
    TL-7139        Removed heading around no results messages for flexible tables
    TL-7187        Removed the HTML table around user details when inside a chat activity
    TL-7188        Removed the HTML table used for layout when entering a chat message
    TL-7552        Replaced individual hierarchy item description table with a datalist


Database schema changes

New tables:
Bug ID   New table name
-----------------------------
TL-4485  goal_user_info_data
TL-4485  goal_user_info_data_param
TL-4485  goal_user_info_field
TL-4485  goal_user_type_cohort
TL-4485  goal_user_type
TL-6684  report_builder_global_restriction
TL-6684  reportbuilder_grp_cohort_record
TL-6684  reportbuilder_grp_org_record
TL-6684  reportbuilder_grp_pos_record
TL-6684  reportbuilder_grp_user_record
TL-6684  reportbuilder_grp_cohort_user
TL-6684  reportbuilder_grp_org_user
TL-6684  reportbuilder_grp_pos_user
TL-6684  reportbuilder_grp_user_user
TL-7246  auth_connect_servers
TL-7246  auth_connect_users
TL-7246  auth_connect_user_collections
TL-7246  auth_connect_sso_requests
TL-7246  auth_connect_sso_sessions

New fields:
Bug ID   Table name                New field name
------------------------------------------------------------
TL-2250  prog                      allowextensionrequests
TL-4485  goal_personal             typeid
TL-4485  goal_personal             visible
TL-5094  feedback360               anonymous
TL-5097  cohort_rule_collections   addnewmembers
TL-5097  cohort_rule_collections   removeoldmembers
TL-6684  report_builder            globalrestriction

Modified fields:
Bug ID   Table name                Field name
------------------------------------------------------------
TL-6621  report_builder_schedule   format        Converted from int to char


API Changes

TL-2250 New options to turn off program extension requests
----------------------------------------------------------
 * New totara_prog_extension_allowed function returns true if the given program allows extension requests

TL-2565 Fixed date custom user profile field type
-------------------------------------------------
 * totara_date_parse_from_format has a new forth argument $forcetimezone

TL-4485 New personal goal types with custom fields
----------------------------------------
 * New report source class rb_source_goal_custom
 * New totara_cohort_get_goal_type_cohorts function returns the cohorts associated with a personal goal type
 * customfield_base::customfield_definition has a new optional sixth argument $disableheader
 * totara_customfield_renderer::get_redirect_options has a new optional third argument $class
 * totara_customfield_renderer::customfield_manage_edit_form has a new ninth argument $class
 * hierarchy::get_type_by_id new optional second argument $usertype
 * hierarchy::display_add_type_button new optional second argument $class
 * hierarchy::delete_type new optional second argument $class
 * hierarchy::delete_type_metadata new optional second argument $class
 * New totara_hierarchy_save_cohorts_for_type function to save the cohort/audience data against the
   hierarchy type
 * totara_hierarchy_renderer::mygoals_personal_table new third optional argument $display

TL-5020 Change of 'from' email address when sending emails
----------------------------------------------------------
 * New totara_get_user_from function returns a user to use as the from user when sending emails

TL-5094 Support for anonymous 360 feedback
------------------------------------------
 * New property feedback360->anonymous [bool]
 * totara_feedback360_renderer->display_feedback_header() has two new arguments $anonymous and $numresponders
 * totara_feedback360_renderer->view_request_infotable() has a new argument $anonymous
 * totara_feedback360_renderer->system_user_record() has a new argument $anonymous
 * totara_feedback360_renderer->external_user_record() has a new argument $anonymous
 * totara_feedback360_renderer->nojs_feedback_request_users() has a new argument $anonymous

TL-5097 New options to disable changes in membership for dyanmic audiences
--------------------------------------------------------------------------
 * New event totara_cohort\event\option_updated fired when ever cohort options are updated.
 * New totara_cohort_update_membership_options function to update cohort options. Fires the above event.

TL-5356 Added new user columns and filters to the Messages report source
---------------------------------------------------------------------
 * rb_base_source->add_user_table_to_joinlist() has a new argument $alias
 * rb_base_source::add_user_fields_to_filters() has a new argument $addtypetoheading

TL-5818 Report builder reports can now be cloned
------------------------------------------------
 * New totara_reportbuilder\event\report_cloned event that gets fired when a report is cloned.
 * New reportbuilder_set_default_access function that sets the default restrictive access for new report
 * New reportbuilder_clone_report function to clone a report

TL-6234 Removed the HTML table used for layout when adding badge criteria
-------------------------------------------------------------------------
 * core_renderer::single_select has a new argument $attributes

TL-6310 Removed incorrect label on the Certificate settings page
----------------------------------------------------------------
 * Deleted mod/certificate/adminsetting.class.php and the mod_certificate_admin_setting_upload class within

TL-6413 Report builder sources may now be marked as ignored
-----------------------------------------------------------
 * New reportbuilder::reset_caches static method to reset user permitted report caches
 * New reportbuilder::get_user_permitted_reports static method to get the reports a user can access
 * reportbuilder_get_reports has been deprecated, please use reportbuilder::get_user_permitted_reports instead
 * New rb_base_source::is_ignored method that can be overridden if the report should always be available

TL-6525 New report table block
------------------------------
 * New reportbuilder::overrideuniqueid() to set a unique ID.
 * New reportbuilder::overrideignoreparams() tells report builder to ignore the standard params when
   constructing the next report.
 * New reportbuilder->get_uniqueid() to report the reports unique ID. All external calls to $report->_id
   should be upgraded to use this method.

TL-6684 Added new global report restrictions
--------------------------------------------
 * New rb_global_restriction class which manages report restrictions rules
 * New rb_global_restriction_set class which integrates restrictions into report builder
 * New parameter in reportbuilder constructor which expects instance of rb_global_restriction_set
 * New rb_base_source::global_restrictions_supported method which should be overridden by report sources
   that support Global Report Restrictions
 * New rb_base_source::get_global_report_restriction_join method to inject Global Report Restrictions
   SQL snippet into base query
 * New parameters signature in rb_base_source::__construct now it should be ($groupid, rb_global_restriction_set
   $globalrestrictionset = null) for all inherited classes
 * New reportbuilder::display_restriction method which displays current restrictions and options to change
   them on report pages
 * New rb_base_embedded::embedded_global_restrictions_supported method which should be overridden by embedded
   report classes to indicate their Global Report restrictions support

TL-6942 Define and use different flavours of Totara during installation and upgrade
-----------------------------------------------------------------------------------
 * New Totara Flavour plugins, component is totara_flavour, plugins are flavour_pluginname.
 * New totara_flavour\definition class that all flavours must extend.

TL-6961 Each custom field type is now managed by a single capability
--------------------------------------------------------------------
 * New method totara_customfield\prefix\*_type->get_capability_managefield()
 * Deleted method totara_customfield\prefix\*_type->get_capability_editfield()
 * Deleted method totara_customfield\prefix\*_type->get_capability_createfield()
 * Deleted method totara_customfield\prefix\*_type->get_capability_createfield()
 * Deleted method totara_customfield\prefix\competency_type->get_capability_deletefield()

Capability changes
 * Added capability: totara/core:coursemanagecustomfield
 * Added capability: totara/core:programmanagecustomfield
 * Added capability: mod/facetoface:managecustomfield
 * Added capability: totara/hierarchy:positionmanagecustomfield
 * Added capability: totara/hierarchy:organisationmanagecustomfield
 * Added capability: totara/hierarchy:goalmanagecustomfield
 * Added capability: totara/hierarchy:competencymanagecustomfield
 * Removed capability: totara/core:createcoursecustomfield
 * Removed capability: totara/core:updatecoursecustomfield
 * Removed capability: totara/core:deletecoursecustomfield
 * Removed capability: totara/core:createprogramcustomfield
 * Removed capability: totara/core:updateprogramcustomfield
 * Removed capability: totara/core:deleteprogramcustomfield
 * Removed capability: mod/facetoface:updatefacetofacecustomfield
 * Removed capability: mod/facetoface:createfacetofacecustomfield
 * Removed capability: mod/facetoface:deletefacetofacecustomfield
 * Removed capability: totara/hierarchy:updatecompetencycustomfield
 * Removed capability: totara/hierarchy:createcompetencycustomfield
 * Removed capability: totara/hierarchy:deletecompetencycustomfield
 * Removed capability: totara/hierarchy:updategoalcustomfield
 * Removed capability: totara/hierarchy:creategoalcustomfield
 * Removed capability: totara/hierarchy:deletegoalcustomfield
 * Removed capability: totara/hierarchy:updateorganisationcustomfield
 * Removed capability: totara/hierarchy:createorganisationcustomfield
 * Removed capability: totara/hierarchy:deleteorganisationcustomfield
 * Removed capability: totara/hierarchy:updatepositioncustomfield
 * Removed capability: totara/hierarchy:createpositioncustomfield
 * Removed capability: totara/hierarchy:deletepositioncustomfield

TL-7237 Serving of user submitted files has been hardened to improve security
-----------------------------------------------------------------------------
 * New totara_tweak_file_sending function that gets called before serving files.

TL-7246 Totara Connect Client
-----------------------------
 * Totara Connect makes it possible to connect one or more Totara LMS or Totara Social
   installations to a master Totara LMS installation.
 * This connection allows for users, and audiences to be synchronised from the
   master to all connected client sites.
 * Synchronised users can move between the connected sites with ease thanks to the
   single sign on system accompanying Totara Connect.

TL-7529 Fixed handling of RPL records when resetting or deleting a course or its completions
--------------------------------------------------------------------------------------------
 * New method completion_info->delete_course_completion_data_including_rpl()


Deleted files

Bug ID   File
----------------------------------------------
TL-5094 totara/feedback360/request/save.php
TL-6310 mod/certificate/adminsetting.class.php
TL-6684 mod/feedback/rb_sources/lang/en/rb_source_feedback_questions.php
TL-6684 mod/feedback/rb_sources/lang/en/rb_source_graphical_feedback_questions.php
TL-6684 mod/feedback/rb_sources/rb_preproc_feedback_questions.php
TL-6684 mod/feedback/rb_sources/rb_source_feedback_questions.php
TL-6684 mod/feedback/rb_sources/rb_source_graphical_feedback_questions.php
TL-6777 totara/core/js/lib/jquery.dataTables.js
TL-6777 totara/core/js/lib/jquery.dataTables.min.js
TL-6777 totara/core/js/lib/jquery.placeholder.js
TL-6777 totara/core/js/lib/jquery.placeholder.min.js
TL-6777 totara/core/js/lib/jquery.treeview.js
TL-6777 totara/core/js/lib/jquery.treeview.min.js
TL-6777 totara/core/js/lib/load.placeholder.js
TL-6777 totara/core/js/lib/readme_totara.txt
TL-6777 totara/core/js/lib/totara_dialog.js
TL-7013 install/lang/ Multiple language files for unsupported languages
TL-7162 totara/appraisal/js/myappraisal.js
TL-7197 totara/plan/templates.js
TL-7198 totara/plan/component.js
TL-7244 totara/cohort/assignroles.js