Previously, ProblemBlock's implementation was split between CapaMixin/CapaFields (in capa_base.py) and ProblemBlock (in capa_module.py), the former being the base classes of the latter. The split existed for a historical reason: as a former XModule, ProblemBlock was once split between CapaDescriptor (author-facing) and CapaModule (learner-facing). Since ProblemBlock has been converted to being a pure XBlock, the division between the base classes and the block class are no longer necessary nor semantically helpful. docs: Flesh out ProblemBlock's docstring a bit.
Open EdX Features ----------------- This is the root package for Open edX features that extend the edX platform. The intention is that these features would ideally live in an external repository, but for now they live in edx-platform but are cleanly modularized.