"Feature: Integrate app and script and related files for Mindmap
This commit is contained in:
71
app.py
71
app.py
@@ -1930,4 +1930,73 @@ def admin_update_database():
|
||||
message = f"Fehler: {str(e)}"
|
||||
success = False
|
||||
|
||||
return render_template('admin/update_database.html', message=message, success=success)
|
||||
return render_template('admin/update_database.html', message=message, success=success)
|
||||
|
||||
@app.route('/api/mindmap/<node_id>')
|
||||
def get_mindmap_node(node_id):
|
||||
"""Liefert die Mindmap-Daten für einen bestimmten Knoten und seine Subthemen."""
|
||||
try:
|
||||
if node_id == 'root':
|
||||
# Hauptknoten (Wissen) abrufen
|
||||
wissen_node = MindMapNode.query.filter_by(name="Wissen").first()
|
||||
if not wissen_node:
|
||||
wissen_node = MindMapNode(
|
||||
name="Wissen",
|
||||
description="Zentrale Wissensbasis",
|
||||
color_code="#4299E1",
|
||||
is_public=True
|
||||
)
|
||||
db.session.add(wissen_node)
|
||||
db.session.commit()
|
||||
|
||||
# Alle direkten Kinder des Wissen-Knotens holen
|
||||
nodes = wissen_node.children.all()
|
||||
else:
|
||||
# Bestimmten Knoten und seine Kinder abrufen
|
||||
parent_node = MindMapNode.query.get_or_404(node_id)
|
||||
nodes = parent_node.children.all()
|
||||
wissen_node = parent_node
|
||||
|
||||
# Ergebnisdaten vorbereiten
|
||||
nodes_data = []
|
||||
edges_data = []
|
||||
|
||||
# Hauptknoten hinzufügen
|
||||
nodes_data.append({
|
||||
'id': wissen_node.id,
|
||||
'name': wissen_node.name,
|
||||
'description': wissen_node.description or '',
|
||||
'color_code': wissen_node.color_code or '#4299E1',
|
||||
'is_center': True,
|
||||
'has_children': len(nodes) > 0
|
||||
})
|
||||
|
||||
# Kinder hinzufügen
|
||||
for node in nodes:
|
||||
nodes_data.append({
|
||||
'id': node.id,
|
||||
'name': node.name,
|
||||
'description': node.description or '',
|
||||
'color_code': node.color_code or '#9F7AEA',
|
||||
'is_center': False,
|
||||
'has_children': len(node.children.all()) > 0
|
||||
})
|
||||
|
||||
# Verbindung zum Elternknoten hinzufügen
|
||||
edges_data.append({
|
||||
'source_id': wissen_node.id,
|
||||
'target_id': node.id,
|
||||
'strength': 0.8
|
||||
})
|
||||
|
||||
return jsonify({
|
||||
'nodes': nodes_data,
|
||||
'edges': edges_data
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Abrufen der Mindmap-Daten: {str(e)}")
|
||||
return jsonify({
|
||||
'success': False,
|
||||
'error': 'Mindmap-Daten konnten nicht geladen werden'
|
||||
}), 500
|
||||
Reference in New Issue
Block a user