|
|
@@ -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", |
|
|
|
) |