In draft_and_published.py, there's a DIRECT_ONLY_CATEGORIES list that contains several module/block types by name. Is it in the correct location/code layer? Would it be better elsewhere?
Determine if DIRECT_ONLY_CATEGORIES is in the correct place.
If not, move it to the correct place.
Ideally, this attribute of a particular XModule/XBlock should live on the module/block itself instead of being hard-coded in the modulestore. The modules/blocks could even register themselves as non-draft on a modulestore-wide basis at process startup or at least the list could live in edx-platform and be passed to the modulestore upon startup.
DIRECT_ONLY_CATEGORIES is in the wrong place.
It should be moved to edx-platform and passed to the coursestore upon startup.
This work is being stopped.