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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions