edx-platform XBlock extraction
Overview
Epic: edx-platform XBlock Extraction · Issue #34827 · openedx/edx-platform
Just in time updates/questions: https://openedx.slack.com/archives/C0GF6FTHA
Good XBlock example: DoneXBlock/done/done.py at master · openedx/DoneXBlock
Why?
assets can be precompiled outside of edx-platform, so edx-platform can be frontend-free
simpler edx-platform, easier to refactor
testing independently
List of edx-platform built-in blocks
Direction | Tag(s) | Class | Known couplings, challenges |
---|---|---|---|
Real component blocks. Extract these. Listed in increasing order of expected difficulty. | poll_question | xmodule.poll_block:PollBlock
| ResourceTemplates EditingMixin EmptyRawDataMixin XmlMixin XModuleMixin XModuleToXBlockMixin add_webpack_js_to_fragment add_webpack_sass_to_fragment shim_xmodule_js JS couplings Comprehensive theming (Sass)
Note: This is replaced by poll . New courses should not use the old poll_question block, but we must keep it in the platform for backwards compatibility with old content. |
word_cloud | xmodule.word_cloud_block:WordCloudBlock |
| |
annotatable | xmodule.annotatable_block:AnnotatableBlock |
| |
lti | xmodule.lti_block:LTIBlock
|
Note: This is replaced by lti_consumer . New courses should not use the old lti block, but we must keep it in the platform for backwards compatibility with old content. | |
html | xmodule.html_block:HtmlBlock |
| |
discussion | xmodule.discussion_block:DiscussionXBlock |
Note: This is replaced by the new in-unit discussion feature. New courses should not use the discussion block, but we must keep it in the platform for backwards compatibility with old content. | |
problem | xmodule.capa_block:ProblemBlock |
| |
video, videoalpha | xmodule.video_block.video_block.VideoBlock |
| |
HTML variants. These are edx-platform-specific specific subclasses of HtmlBlock. Leave them in edx-platform, but change their superclass to the extracted HtmlBlock. | about | xmodule.html_block:AboutBlock |
|
course_info | xmodule.html_block:CourseInfoBlock |
| |
static_tab | xmodule.html_block:StaticTabBlock |
| |
Template blocks. I don’t fully understand these, but Dave says they are very extractable. Need to follow up on this. | customtag custom_tag_template several custom tags:
| xmodule.template_block:CustomTagBlock xmodule.template_block:CustomTagTemplateBlock xmodule.template_block:TranslateCustomTagBlock |
|
Special case blocks. These should stay put in edx-platform. | hidden error wrapper | xmodule.hidden_block:HiddenBlock xmodule.error_block:ErrorBlock xmodule.wrapper_block:WrapperBlock |
|
Structural blocks. Leave them alone for now. Long term, these will be replaced with Learning Core. | library course chapter sequential unit vertical | xmodule.library_root_xblock:LibraryRoot xmodule.course_block:CourseBlock xmodule.seq_block:SectionBlock xmodule.seq_block:SequenceBlock xmodule.unit_block:UnitBlock xmodule.vertical_block:VerticalBlock |
|
Dynamic blocks. Leave them alone for now. Long term, these will be replaced with Learning Core. | split_test conditional library_content randomize | xmodule.split_test_block:SplitTestBlock xmodule.conditional_block:ConditionalBlock xmodule.library_content_block:LibraryContentBlock xmodule.randomize_block:RandomizeBlock |
|