diff --git a/frappe/desk/treeview.py b/frappe/desk/treeview.py index 9158b4177d..0231508bce 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) + 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(tree_method) + frappe.is_whitelisted(callable_tree_method) - data = tree_method(doctype, parent, **filters) + data = callable_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 = callable_tree_method(doctype, parent, is_root=False, **filters) out.append(dict(parent=parent, data=data)) for d in data: if d.get("expandable"):