29 lines
721 B
Python
29 lines
721 B
Python
from __future__ import unicode_literals
|
|
|
|
|
|
def jstree_data(node, selected_node):
|
|
result = []
|
|
result.append('{')
|
|
result.append('"text": "{}",'.format(node.label))
|
|
result.append(
|
|
'"state": {{ "opened": true, "selected": {} }},'.format(
|
|
'true' if node == selected_node else 'false'
|
|
)
|
|
)
|
|
result.append(
|
|
'"data": {{ "href": "{}" }},'.format(node.get_absolute_url())
|
|
)
|
|
|
|
children = node.get_children().order_by('label',)
|
|
|
|
if children:
|
|
result.append('"children" : [')
|
|
for child in children:
|
|
result.extend(jstree_data(node=child, selected_node=selected_node))
|
|
|
|
result.append(']')
|
|
|
|
result.append('},')
|
|
|
|
return result
|