Files
edx-platform/lms/lib/utils.py

31 lines
931 B
Python

"""
Helper methods for the LMS.
"""
def get_parent_unit(xblock):
"""
Finds xblock's parent unit if it exists.
To find an xblock's parent unit, we traverse up the xblock's
family tree until we find an xblock whose parent is a
sequential xblock, which guarantees that the xblock is a unit.
The `get_parent()` call on both the xblock and the parent block
ensure that we don't accidentally return that a unit is its own
parent unit.
Returns:
xblock: Returns the parent unit xblock if it exists.
If no parent unit exists, returns None
"""
while xblock:
parent = xblock.get_parent()
if parent is None:
return None
grandparent = parent.get_parent()
if grandparent is None:
return None
if parent.category == "vertical" and grandparent.category == "sequential":
return parent
xblock = parent