Commit 99dccf98 by cahrens

Do not require restating LMS to pick up disabled xblock change.

parent cc7017e8
......@@ -48,6 +48,9 @@ try:
except ImportError:
HAS_USER_SERVICE = False
from django.dispatch import receiver
from django.db.models.signals import post_save
try:
from xblock_django.models import XBlockConfigFlag, XBlockConfig
except ImportError:
......@@ -252,6 +255,15 @@ def clear_existing_modulestores():
_MIXED_MODULESTORE = None
@receiver(post_save, sender=XBlockConfig)
def reset_disabled_xblocks(sender, instance, **kwargs): # pylint: disable=unused-argument, invalid-name
if XBlockConfigFlag and XBlockConfigFlag.is_enabled():
# TODO make this method smarter so we only reset the list if the modified
# xblock either was in disabled_xblock_types or is now disabled.
disabled_xblock_types = [block.name for block in XBlockConfig.disabled_xblocks()]
modulestore().disabled_xblock_types = disabled_xblock_types
class ModuleI18nService(object):
"""
Implement the XBlock runtime "i18n" service.
......
......@@ -310,6 +310,18 @@ class MixedModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase):
course_summaries[course_id] = course_summary
return course_summaries.values()
@property
def disabled_xblock_types(self):
return self._disabled_xblock_types
@disabled_xblock_types.setter
def disabled_xblock_types(self, value):
self._disabled_xblock_types = value
if hasattr(self, 'modulestores'):
for store in self.modulestores:
store.disabled_xblock_types = value
@strip_key
def get_courses(self, **kwargs):
'''
......
......@@ -955,6 +955,14 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase, Mongo
return system.load_item(location, for_parent=for_parent)
@property
def disabled_xblock_types(self):
return self._disabled_xblock_types
@disabled_xblock_types.setter
def disabled_xblock_types(self, value):
self._disabled_xblock_types = value
def _load_items(self, course_key, items, depth=0, using_descriptor_system=None, for_parent=None):
"""
Load a list of xmodules from the data in items, with children cached up
......
......@@ -3348,10 +3348,18 @@ class SplitMongoModuleStore(SplitBulkWriteMixin, ModuleStoreWriteBase):
render_template=self.render_template,
mixins=self.xblock_mixins,
select=self.xblock_select,
disabled_xblock_types=self.disabled_xblock_types,
disabled_xblock_types=self._disabled_xblock_types,
services=self.services,
)
@property
def disabled_xblock_types(self):
return self._disabled_xblock_types
@disabled_xblock_types.setter
def disabled_xblock_types(self, value):
self._disabled_xblock_types = value
def ensure_indexes(self):
"""
Ensure that all appropriate indexes are created that are needed by this modulestore, or raise
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment