feat: update app logic and improve logging functionality

This commit is contained in:
2025-05-12 18:26:33 +01:00
parent 293f877017
commit b1d33ce643
3 changed files with 422 additions and 52 deletions

56
app.py
View File

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