This files describes API changes in the lti code,
information provided here is intended especially for developers.

=== 19.1.0 ===

* Added "Require passing grade" completion option.
  * To remove the option, add $CFG->revert_TL_43887_until_t20 in config.php. This change will be enforced in Totara 20.

=== 19.0 ===

* Updated templates/tool_configure.mustache

=== 18.0 ===

* serialise_tool_proxy() has been deprecated

=== 14.0 ===

=== 13.0 ===

* Deprecated functions to add support for LTI 1 tools to access services:
    - mod_lti\local\ltiservice\service_base->check_tool_proxy()
    - mod_lti\local\ltiservice\service_base->check_type()
    - mod_lti\local\ltiservice\resource_base->check_tool_proxy()
    - mod_lti\local\ltiservice\resource_base->check_type()
    - mod_lti_edit_types_form->get_lti_advantage_services()
  replaced by:
    - mod_lti\local\ltiservice\service_base->check_tool()
    - mod_lti\local\ltiservice\resource_base->check_tool()
    - mod_lti_edit_types_form->get_lti_services()
* Deprecated unused function:
    - mod_lti\local\ltiservice\service_base->get_configuration_parameter_names()
* Deprecated functions to simplify implementation of LTI scopes for accessing services:
    - mod_lti\local\ltiservice\resource_base->get_permissions()
    - ltiservice_gradebookservices\local\resources\lineitem\get_permissions()
    - ltiservice_gradebookservices\local\resources\lineitems\get_permissions()
    - ltiservice_gradebookservices\local\resources\results\get_permissions()
    - ltiservice_gradebookservices\local\resources\scores\get_permissions()
    - ltiservice_memberships\local\resources\contextmemberships\get_permissions()
    replaced by:
    - mod_lti\local\ltiservice\service_base->get_permitted_scopes()
    - ltiservice_gradebookservices\local\service\gradebookservices->get_permitted_scopes()
    - ltiservice_memberships\local\service\memberships\->get_permitted_scopes()
* Deprecated function to remove definition as static:
    - ltiservice_memberships\local\service\memberships\get_users_json()
    replaced by:
    - ltiservice_memberships\local\service\memberships\get_members_json()

=== 12.0 ===

* String helpers are no longer used in the following templates, string data is passed via context data:
** mod/lti/templates/loader.mustache
** mod/lti/templates/tool_card.mustache
** mod/lti/templates/tool_configure.mustache
** mod/lti/templates/tool_proxy_card.mustache
* "Embed, without blocks" now uses incourse page layout (with blocks disabled)

=== 10.0 ===

* When requesting a grade from the outcome service, and empty grade will now be returned as
  an empty grade in accordance with the spec. Previously a grade of 0 would be returned.
* Support for LTI ContentItem message type.
* New function lti_build_content_item_selection_request() for building an LTI ContentItemSelectionRequest.
* New Select content button in External tool configuration page that lets the user configure an external tool by fetching tool
  configuration content from the preconfigured tool's content selection interface.

=== 3.1 ===

* When requesting a grade from the outcome service, and empty grade will now be returned as
  an empty grade in accordance with the spec. Previously a grade of 0 would be returned.

=== 3.0 ===

* Function lti_view (locallib.php) was renamed to lti_launch_tool.
  A new and different lti_view function was created in the module lib.php containing the code
  for launching events and update the completion status for the module.


=== 2.8 ===

* Support for LTI 2 added, including extensible services implemented as ltiservice plugins.
* Function sendOAuthBodyPOST removed from OAuthBody.php because it was not being used.
* The field 'grade' in the table {lti} is now an integer rather than a numeric to bring it
  in line with the 'grade' field in other activities.

=== 2.7 ===

* mod_lti\event\unknown_service_api_called now has less data stored in 'other'
  but everything is still available for event observers via method get_message_data()
