Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-85357

Enable placement configuration during LTI tool creation

    • 8
    • Team Alpha - Sprint 1 I2-2025, Team Alpha - Sprint 2 I2-2025

      Currently, the configuration and creation of LTI tools are tightly coupled with the use case of the External Tool activity. As part of the standard configuration process, users are required to specify activity-specific settings, such as whether the tool should be visible in the activity chooser. However, with the introduction of the LTI placements concept, it becomes necessary to decouple the tool configuration from the activity-specific setup and generalize it to support a wider range of placements.

      The goal is to provide a more flexible configuration system for LTI tools, where various placement types (such as course navigation, activity chooser, and any future placements) can be configured independently. In this new model, the External Tool activity will no longer be treated as the only placement but will instead become a specific type of placement that requires its own configuration, just like any other placement type that may be supported in the future.

      To implement this change, as outlined in the prototype, the following scope is proposed:

      1. New form sections for each placement type: The LTI tool configuration page should display a new form section for each supported placement type. The section should be titled "Placement: [Placement name]" (e.g., "Placement: Activity chooser") and display a description of the placement type.
      2. Placement-specific configuration options: Each section will include the relevant configuration options for that placement type. In the case of the activity placement type, we should have the following settings:
        • “LTI deep linking request” - checkbox that enables/disables the “LTI deep linking URL” setting
        • “LTI deep linking URL” - input field that allows setting the deep linking URL
        • “LTI resource linking request” - checkbox that enables/disables the “LTI resource linking URL” setting
        • “LTI resource linking URL” - input field that allows setting the resource linking URL
        • Icon URL - input field that allows setting the URL to the icon that will appear in the course-context representing this activity.
        • Text - input field
      3. Option to specify the default state of each placement: Each section should always include a toggle that will allow administrators to control the default state of the placement (enabled or disabled). This means that administrators will be able to configure the initial visibility and availability of the tool for each placement type when the tool is first created or updated.
      4. Configuration processing: Once the LTI tool configuration is saved, the placement-related configurations should be properly stored in the database to reflect the new generalized approach to placements within the new ‘placement’ database structure. For example:
        1. The lti_placement table will store the relationship between the tool ID and the placement type ID, establishing which tool is assigned to which placement.
        2. The lti_placement_config table will store the specific configuration options for each placement (e.g., LTI deep linking URL, Icon, Text, etc.).
      5. Remove redundant settings options: The option "Show in activity chooser and as a preconfigured tool" from the "Tool configuration usage" setting should be removed.
      6. Automated testing: Adding phpunit/behat tests to cover this functionality (if applicable)

            rajneel.totaram@moodle.com Rajneel Totaram
            Geshoski Mihail Geshoski
            Mihail Geshoski Mihail Geshoski
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:

                Estimated:
                Original Estimate - 0 minutes
                0m
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 7 hours, 3 minutes
                7h 3m

                  Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.