feat: implement V2 libraries usage for library content block (#30615)
YT: https://youtrack.raccoongang.com/issue/EDX_BLND_CLI-87 - V2 libraries are available for selection in the Random Block edit modal; - selected V2 library blocks are copied to the modulestore and saved as children of the Random Block; - V2 library version validation works the same as for the V1 libraries (with possibility to update block with the latest version); - filtering by problem type can't be done for V2 the same as for V1 because the v2 library problems are not divided by types; - the problem type field is hidden for v2 libraries in the edit mode; - unit tests added/updated.
This commit is contained in:
@@ -3,12 +3,12 @@
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from crum import get_current_user
|
||||
from fs.osfs import OSFS
|
||||
from lazy import lazy
|
||||
from opaque_keys.edx.locator import BlockUsageLocator, DefinitionLocator, LocalId
|
||||
from xblock.fields import ScopeIds
|
||||
from xblock.runtime import KeyValueStore, KvsFieldData
|
||||
|
||||
from xmodule.error_module import ErrorBlock
|
||||
from xmodule.errortracker import exc_info_to_str
|
||||
from xmodule.library_tools import LibraryToolsService
|
||||
@@ -74,7 +74,10 @@ class CachingDescriptorSystem(MakoDescriptorSystem, EditInfoRuntimeMixin): # li
|
||||
self.module_data = module_data
|
||||
self.default_class = default_class
|
||||
self.local_modules = {}
|
||||
self._services['library_tools'] = LibraryToolsService(modulestore, user_id=None)
|
||||
|
||||
user = get_current_user()
|
||||
user_id = user.id if user else None
|
||||
self._services['library_tools'] = LibraryToolsService(modulestore, user_id=user_id)
|
||||
|
||||
@lazy
|
||||
def _parent_map(self): # lint-amnesty, pylint: disable=missing-function-docstring
|
||||
|
||||
Reference in New Issue
Block a user