Skip to content

[Refactor] Slash-n-Burn LTI BuiltIn XBlock #537

Description

@irfanuddinahmad

See parent epic: openedx/openedx-platform#37819


Rollout Position

Step 5 of 8 — Medium-high complexity (~1,386 LOC core). The LTI block coexists with a separate LTI Provider Django app and LTI course tab feature — these are out of scope and remain in edx-platform after this removal.


Block Details

Toggle USE_EXTRACTED_LTI_BLOCK in openedx/envs/common.py
Shim class _BuiltInLTIBlock in xmodule/lti_block.py
Entrypoint lti = "xmodule.lti_block:LTIBlock" in pyproject.toml

Checklist

Pre-condition

  • Review PRs merged into the built-in LTI XBlock code in edx-platform after the extraction work was done — port any bug fixes or improvements to xblocks-contrib if not already there.

Steps (single PR)

  • Remove the toggle — delete USE_EXTRACTED_LTI_BLOCK from openedx/envs/common.py and all usages.
  • Remove the shim — delete _BuiltInLTIBlock class and the from xblocks_contrib.lti import LTIBlock as _ExtractedLTIBlock import from xmodule/lti_block.py.
  • Remove the entrypoint — delete lti = "xmodule.lti_block:LTIBlock" from pyproject.toml.
  • Remove remaining assets:
    • xmodule/lti_block.py (Python class)
    • xmodule/lti_2_util.py
    • xmodule/js/src/lti/lti.js (JavaScript)
    • lms/templates/lti.html and lms/templates/lti_form.html (templates)
    • xmodule/static/css-builtin-blocks/LTIBlockDisplay.css (CSS)
    • Webpack entries LTIBlockDisplay / LTIBlockEditor in webpack.builtinblocks.config.js
  • Run smoke tests on the extracted LTI block to verify nothing is broken.

Scope Notes

Out of scope for this issue:

  • lms/djangoapps/lti_provider/ — separate Django app handling LTI protocol OAuth callbacks and grade passback; remains in edx-platform.
  • openedx/features/lti_course_tab/ — LTI course tab feature; remains in edx-platform.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions