feat: implement falling back to HiddenBlock

This commit is contained in:
0x29a
2022-12-13 09:22:53 +01:00
committed by Piotr Surowiec
parent eec4965ecd
commit 3115db5836
3 changed files with 30 additions and 3 deletions

View File

@@ -521,7 +521,16 @@ class MongoModuleStore(ModuleStoreDraftAndPublished, ModuleStoreWriteBase, Mongo
if default_class is not None:
module_path, _, class_name = default_class.rpartition('.')
class_ = getattr(import_module(module_path), class_name)
try:
class_ = getattr(import_module(module_path), class_name)
except ImportError:
fallback_module_path = "xmodule.hidden_block"
fallback_class_name = "HiddenDescriptor"
log.exception(
"Failed to import the default store class. "
f"Falling back to {fallback_module_path}.{fallback_class_name}"
)
class_ = getattr(import_module(fallback_module_path), fallback_class_name)
self.default_class = class_
else:
self.default_class = None

View File

@@ -656,7 +656,16 @@ class SplitMongoModuleStore(SplitBulkWriteMixin, ModuleStoreWriteBase):
if default_class is not None:
module_path, __, class_name = default_class.rpartition('.')
class_ = getattr(import_module(module_path), class_name)
try:
class_ = getattr(import_module(module_path), class_name)
except ImportError:
fallback_module_path = "xmodule.hidden_block"
fallback_class_name = "HiddenDescriptor"
log.exception(
"Failed to import the default store class. "
f"Falling back to {fallback_module_path}.{fallback_class_name}"
)
class_ = getattr(import_module(fallback_module_path), fallback_class_name)
self.default_class = class_
else:
self.default_class = None

View File

@@ -335,7 +335,16 @@ class XMLModuleStore(ModuleStoreReadBase):
self.default_class = None
else:
module_path, _, class_name = default_class.rpartition('.')
class_ = getattr(import_module(module_path), class_name)
try:
class_ = getattr(import_module(module_path), class_name)
except ImportError:
fallback_module_path = "xmodule.hidden_block"
fallback_class_name = "HiddenDescriptor"
log.exception(
"Failed to import the default store class. "
f"Falling back to {fallback_module_path}.{fallback_class_name}"
)
class_ = getattr(import_module(fallback_module_path), fallback_class_name)
self.default_class = class_
# All field data will be stored in an inheriting field data.