Tree & get_children()

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:
image

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:
image

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

Es liegt an deiner get_children Methode, die einerseits nicht nach den tatsächlich benötigten Elementen filtert und andererseits kein title-Feld zurück gibt.

@rmeyer Vielen Dank für die schnelle Antwort, das mit dem title hat schon mal geholfen.

Allerdings habe ich immer noch das Problem, das der Tree die gelieferten Datensätze endlos wiederholt, obwohl mein SQL nur 4 Datensätze liefert:

Den Filter mit den Childs habe ich zunächst weggelassen.

Eine Frage noch: woher weisst Du, das “title” ebenfalls ein Schlüsselwort ist? Ich habe zu dem Thema vorher ein bißchen recherchiert aber außer den Beispielen in erpnext keine hilfreiche Doku gefunden.