diff --git a/frappe/utils/nestedset.py b/frappe/utils/nestedset.py index 57dd004c28..193901e5d2 100644 --- a/frappe/utils/nestedset.py +++ b/frappe/utils/nestedset.py @@ -352,34 +352,29 @@ def get_ancestors_of(doctype, name, order_by="lft desc", limit=None): """Get ancestor elements of a DocType with a tree structure""" lft, rgt = frappe.db.get_value(doctype, name, ["lft", "rgt"]) - result = [ - d["name"] - for d in frappe.db.get_all( - doctype, - {"lft": ["<", lft], "rgt": [">", rgt]}, - "name", - order_by=order_by, - limit_page_length=limit, - ) - ] - - return result or [] + return frappe.get_all( + doctype, + {"lft": ["<", lft], "rgt": [">", rgt]}, + "name", + order_by=order_by, + limit_page_length=limit, + pluck="name", + ) def get_descendants_of(doctype, name, order_by="lft desc", limit=None, ignore_permissions=False): """Return descendants of the current record""" lft, rgt = frappe.db.get_value(doctype, name, ["lft", "rgt"]) - result = [ - d["name"] - for d in frappe.db.get_list( - doctype, - {"lft": [">", lft], "rgt": ["<", rgt]}, - "name", - order_by=order_by, - limit_page_length=limit, - ignore_permissions=ignore_permissions, - ) - ] - - return result or [] + if rgt - lft <= 1: + return [] + + return frappe.get_list( + doctype, + {"lft": [">", lft], "rgt": ["<", rgt]}, + "name", + order_by=order_by, + limit_page_length=limit, + ignore_permissions=ignore_permissions, + pluck="name", + )