See parent epic: openedx/openedx-platform#37819
Rollout Position
Step 8 of 8 — Largest and highest-risk block (~15K LOC). The Problem/CAPA block is deeply integrated with the grading system and instructor dashboard, and supports many problem types (multiple choice, code input, circuit schematic, MATLAB, image input). Leave this for last.
Block Details
|
|
| Toggle |
USE_EXTRACTED_PROBLEM_BLOCK in openedx/envs/common.py |
| Shim class |
_BuiltInProblemBlock in xmodule/capa_block.py |
| Entrypoint |
problem = "xmodule.capa_block:ProblemBlock" in pyproject.toml |
Note on stale annotation: The toggle annotation in openedx/envs/common.py still says toggle_default: False but the code has been set to True (via refactor: Enable Extracted Problem XBlock #38152). The PR for this block should update the annotation to toggle_default: True before removing the toggle entirely.
Checklist
Pre-condition
Steps (single PR)
See parent epic: openedx/openedx-platform#37819
Rollout Position
Step 8 of 8 — Largest and highest-risk block (~15K LOC). The Problem/CAPA block is deeply integrated with the grading system and instructor dashboard, and supports many problem types (multiple choice, code input, circuit schematic, MATLAB, image input). Leave this for last.
Block Details
USE_EXTRACTED_PROBLEM_BLOCKinopenedx/envs/common.py_BuiltInProblemBlockinxmodule/capa_block.pyproblem = "xmodule.capa_block:ProblemBlock"inpyproject.tomlChecklist
Pre-condition
Steps (single PR)
# .. toggle_default: False→# .. toggle_default: Trueatopenedx/envs/common.pybefore removing the toggle.USE_EXTRACTED_PROBLEM_BLOCKfromopenedx/envs/common.pyand all usages._BuiltInProblemBlockclass and thefrom xblocks_contrib.problem import ProblemBlock as _ExtractedProblemBlockimport fromxmodule/capa_block.py.problem = "xmodule.capa_block:ProblemBlock"frompyproject.toml.xmodule/capa_block.py(Python class, 2,481 LOC)xmodule/js/src/capa/(display.js, imageinput.js, schematic.js — 7,759 LOC)xmodule/static/css-builtin-blocks/ProblemBlockDisplay.css(2,304 LOC)xmodule/templates/problem/(template files)ProblemBlockDisplay/ProblemBlockEditorinwebpack.builtinblocks.config.js