refactor: rename module (or item) -> block within common

This commit is contained in:
0x29a
2023-01-02 15:26:17 +01:00
committed by Agrendalath
parent d338f00e39
commit e96155807a
4 changed files with 40 additions and 40 deletions

View File

@@ -0,0 +1,36 @@
"""
Utility library containing operations used/shared by multiple CourseBlocks.
"""
def yield_dynamic_descriptor_descendants(descriptor, user_id, block_creator=None):
"""
This returns all of the descendants of a descriptor. If the descriptor
has dynamic children, the block will be created using block_creator
and the children (as descriptors) of that module will be returned.
"""
stack = [descriptor]
while len(stack) > 0:
next_descriptor = stack.pop()
stack.extend(get_dynamic_descriptor_children(next_descriptor, user_id, block_creator))
yield next_descriptor
def get_dynamic_descriptor_children(descriptor, user_id, block_creator=None, usage_key_filter=None):
"""
Returns the children of the given descriptor, while supporting descriptors with dynamic children.
"""
block_children = []
if descriptor.has_dynamic_children():
block = None
if descriptor.scope_ids.user_id and user_id == descriptor.scope_ids.user_id:
# do not rebind the block if it's already bound to a user.
block = descriptor
elif block_creator:
block = block_creator(descriptor)
if block:
block_children = block.get_child_descriptors()
else:
block_children = descriptor.get_children(usage_key_filter)
return block_children

View File

@@ -1,36 +0,0 @@
"""
Utility library containing operations used/shared by multiple courseware modules
"""
def yield_dynamic_descriptor_descendants(descriptor, user_id, module_creator=None):
"""
This returns all of the descendants of a descriptor. If the descriptor
has dynamic children, the module will be created using module_creator
and the children (as descriptors) of that module will be returned.
"""
stack = [descriptor]
while len(stack) > 0:
next_descriptor = stack.pop()
stack.extend(get_dynamic_descriptor_children(next_descriptor, user_id, module_creator))
yield next_descriptor
def get_dynamic_descriptor_children(descriptor, user_id, module_creator=None, usage_key_filter=None):
"""
Returns the children of the given descriptor, while supporting descriptors with dynamic children.
"""
module_children = []
if descriptor.has_dynamic_children():
module = None
if descriptor.scope_ids.user_id and user_id == descriptor.scope_ids.user_id:
# do not rebind the module if it's already bound to a user.
module = descriptor
elif module_creator:
module = module_creator(descriptor)
if module:
module_children = module.get_child_descriptors()
else:
module_children = descriptor.get_children(usage_key_filter)
return module_children