✨ feat: update app logic and improve logging functionality
This commit is contained in:
56
app.py
56
app.py
@@ -2478,64 +2478,16 @@ def get_mindmap_data(node_id):
|
||||
Liefert für 'root' die Hauptebene und für andere Node-IDs die entsprechenden Unterknoten.
|
||||
Daten werden aus der Datenbank abgerufen.
|
||||
"""
|
||||
if node_id == 'root':
|
||||
return get_root_mindmap()
|
||||
|
||||
app.logger.info(f"Mindmap-Daten werden für Node '{node_id}' angefordert.")
|
||||
|
||||
try:
|
||||
# Fallback-Daten falls Datenbankzugriff fehlschlägt
|
||||
fallback_data = get_fallback_mindmap_data(node_id)
|
||||
|
||||
if node_id == 'root':
|
||||
# Hauptebene der Mindmap - finde den "Wissen"-Knoten und seine Verbindungen
|
||||
wissen_node = MindMapNode.query.filter_by(name="Wissen").first()
|
||||
|
||||
if not wissen_node:
|
||||
app.logger.warning("'Wissen'-Knoten nicht in der Datenbank gefunden, Fallback zu Hardcoded-Daten.")
|
||||
return jsonify(fallback_data)
|
||||
|
||||
# Zentrum der Mindmap ist der "Wissen"-Knoten
|
||||
nodes = [{
|
||||
"id": str(wissen_node.id),
|
||||
"name": "Wissenskarte", # Frontend-Name für Root-Knoten
|
||||
"description": wissen_node.description or "Zentrale Wissenskarte mit allen Hauptthemen",
|
||||
"is_center": True,
|
||||
"color_code": "#f5f5f5",
|
||||
"has_children": True
|
||||
}]
|
||||
|
||||
# Hauptkategorien als Knoten
|
||||
main_categories = Category.query.filter_by(parent_id=None).all()
|
||||
category_nodes = []
|
||||
edges = []
|
||||
|
||||
for category in main_categories:
|
||||
category_node = {
|
||||
"id": f"cat_{category.id}",
|
||||
"name": category.name,
|
||||
"description": category.description or f"Kategorie: {category.name}",
|
||||
"category": category.name,
|
||||
"has_children": True,
|
||||
"color_code": category.color_code or "#9F7AEA"
|
||||
}
|
||||
category_nodes.append(category_node)
|
||||
|
||||
# Verbindung vom Wissen-Knoten zur Kategorie
|
||||
edges.append({
|
||||
"source_id": str(wissen_node.id),
|
||||
"target_id": f"cat_{category.id}",
|
||||
"strength": 0.9
|
||||
})
|
||||
|
||||
nodes.extend(category_nodes)
|
||||
|
||||
response = {
|
||||
"nodes": nodes,
|
||||
"edges": edges
|
||||
}
|
||||
|
||||
app.logger.info(f"Mindmap-Daten für 'root' erfolgreich aus Datenbank geladen. {len(nodes)} Knoten gefunden.")
|
||||
return jsonify(response)
|
||||
|
||||
elif node_id.startswith('cat_'):
|
||||
if node_id.startswith('cat_'):
|
||||
# Unterkategorien einer Hauptkategorie anzeigen
|
||||
category_id = node_id.replace('cat_', '')
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user