Hallo,
ich experimentiere gerade mit der Option “Is Tree” in DocTypes. Mein DT “Tree Test” hat nur ein einziges Feld “Beschreibung”, das auch als Title Field verwendet wird. Der Name der Datensätze wird automatisch generiert.
Zunächst funktioniert alles wie erwartet:
Nun möchte ich einen Filter in den Tree einbauen wie z.B. beim DocType Location. Leider versteigt sich der Tree dabei in einer scheinbar endlosen Verschachtelung der 4 Entries, und zeigt auch die Beschriftung nicht mehr an:
Hier der verwendete Code:
tree_test_tree.js
frappe.treeview_settings['Tree Test'] = {
title: 'Mein Tree Test',
filters: [
{
fieldname: 'child_filter',
fieldtype:'Data',
label: 'Which Child',
}
],
get_tree_nodes: 'erpituc.erpituc.doctype.tree_test.tree_test.get_children',
};
tree_test.py:
@frappe.whitelist()
def get_children(**kwargs):
print(f"*** get_children, {kwargs=}")
result = frappe.db.sql("SELECT name as value, is_group as expandable, beschreibung FROM `tabTree Test` WHERE is_group = 1", as_dict=True)
return result
Anhand der vorhandenen Implementierung in location.py habe ich erwartet, das get_children() eine Liste von Instanzen mit den Attributen “value” und “expendable” liefert. Das scheint hier nicht auszureichen.
Wie muss ich meinen Code anpassen, damit der Tree wieder korrekt angezeigt wird, und wie kann ich einen Filter implementieren, der nur Parents und Childs anzeigt, die zum Filter passen?
Verwendete Versionen:
erpnext 14.62.4
frappe 14.66.0