From 8ee593a1da2c7f8cccb61d270d4bf921e69d6361 Mon Sep 17 00:00:00 2001 From: Exequiel Arona Date: Fri, 13 Mar 2026 15:17:29 -0300 Subject: [PATCH 1/2] fix: get_all_node respect override_whitelisted_methods hooks --- frappe/desk/treeview.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/frappe/desk/treeview.py b/frappe/desk/treeview.py index 9158b4177d..f353c71b63 100644 --- a/frappe/desk/treeview.py +++ b/frappe/desk/treeview.py @@ -13,11 +13,15 @@ def get_all_nodes(doctype: str, label: str, parent: str, tree_method: str | None filters.pop("cmd", None) filters.pop("data", None) - tree_method = frappe.get_attr(tree_method) + try: + tree_method = frappe.override_whitelisted_method(tree_method) + calleble_tree_method = frappe.get_attr(tree_method) + except Exception as e: + frappe.throw(_("Failed to get method for command {0} with {1}").format(tree_method, str(e))) - frappe.is_whitelisted(tree_method) + frappe.is_whitelisted(calleble_tree_method) - data = tree_method(doctype, parent, **filters) + data = calleble_tree_method(doctype, parent, **filters) out = [dict(parent=label, data=data)] filters.pop("is_root", None) @@ -25,7 +29,7 @@ def get_all_nodes(doctype: str, label: str, parent: str, tree_method: str | None while to_check: parent = to_check.pop() - data = tree_method(doctype, parent, is_root=False, **filters) + data = calleble_tree_method(doctype, parent, is_root=False, **filters) out.append(dict(parent=parent, data=data)) for d in data: if d.get("expandable"): From 6d7e91208ee7727cc1948cd09dfe181dcaf75df4 Mon Sep 17 00:00:00 2001 From: Exequiel Arona Date: Sun, 15 Mar 2026 08:47:33 -0300 Subject: [PATCH 2/2] fix: correct variable name for callable tree method in get_all_nodes --- frappe/desk/treeview.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frappe/desk/treeview.py b/frappe/desk/treeview.py index f353c71b63..0231508bce 100644 --- a/frappe/desk/treeview.py +++ b/frappe/desk/treeview.py @@ -15,13 +15,13 @@ def get_all_nodes(doctype: str, label: str, parent: str, tree_method: str | None try: tree_method = frappe.override_whitelisted_method(tree_method) - calleble_tree_method = frappe.get_attr(tree_method) + callable_tree_method = frappe.get_attr(tree_method) except Exception as e: frappe.throw(_("Failed to get method for command {0} with {1}").format(tree_method, str(e))) - frappe.is_whitelisted(calleble_tree_method) + frappe.is_whitelisted(callable_tree_method) - data = calleble_tree_method(doctype, parent, **filters) + data = callable_tree_method(doctype, parent, **filters) out = [dict(parent=label, data=data)] filters.pop("is_root", None) @@ -29,7 +29,7 @@ def get_all_nodes(doctype: str, label: str, parent: str, tree_method: str | None while to_check: parent = to_check.pop() - data = calleble_tree_method(doctype, parent, is_root=False, **filters) + data = callable_tree_method(doctype, parent, is_root=False, **filters) out.append(dict(parent=parent, data=data)) for d in data: if d.get("expandable"):