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
Steps (single PR)
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.
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
USE_EXTRACTED_LTI_BLOCKinopenedx/envs/common.py_BuiltInLTIBlockinxmodule/lti_block.pylti = "xmodule.lti_block:LTIBlock"inpyproject.tomlChecklist
Pre-condition
Steps (single PR)
USE_EXTRACTED_LTI_BLOCKfromopenedx/envs/common.pyand all usages._BuiltInLTIBlockclass and thefrom xblocks_contrib.lti import LTIBlock as _ExtractedLTIBlockimport fromxmodule/lti_block.py.lti = "xmodule.lti_block:LTIBlock"frompyproject.toml.xmodule/lti_block.py(Python class)xmodule/lti_2_util.pyxmodule/js/src/lti/lti.js(JavaScript)lms/templates/lti.htmlandlms/templates/lti_form.html(templates)xmodule/static/css-builtin-blocks/LTIBlockDisplay.css(CSS)LTIBlockDisplay/LTIBlockEditorinwebpack.builtinblocks.config.jsScope 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.