From 04b3a5cabc60241c8f8bbd3f447ea22919389d57 Mon Sep 17 00:00:00 2001 From: Zlash65 Date: Wed, 30 Jan 2019 16:31:00 +0530 Subject: [PATCH] feat: added a utility method to get all the descendants of a node --- frappe/utils/nestedset.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frappe/utils/nestedset.py b/frappe/utils/nestedset.py index f5400318a7..021425bab2 100644 --- a/frappe/utils/nestedset.py +++ b/frappe/utils/nestedset.py @@ -263,3 +263,11 @@ def get_ancestors_of(doctype, name, order_by="lft desc", limit=None): result = frappe.db.sql_list("""select name from `tab{0}` where lft<%s and rgt>%s order by {1} {2}""".format(doctype, order_by, limit), (lft, rgt)) return result or [] + +def get_descendants_of(doctype, name, order_by="lft desc", limit=None): + '''Return descendants of the current record''' + lft, rgt = frappe.db.get_value(doctype, name, ['lft', 'rgt']) + limit = "limit %s" % cint(limit) if limit else "" + result = frappe.db.sql_list("""select name from `tab{0}` + where lft>%s and rgt<%s order by {1} {2}""".format(doctype, order_by, limit), (lft, rgt)) + return result or []