chore: Änderungen commited

This commit is contained in:
2025-05-10 22:20:49 +02:00
parent e1cd23230d
commit 41195a44cb
3 changed files with 30 additions and 164 deletions

Binary file not shown.

194
app.py
View File

@@ -149,169 +149,6 @@ def create_default_users():
db.session.commit()
print(f"{len(users)} Benutzer wurden erstellt.")
def create_default_categories():
"""Erstellt die Standardkategorien für die Mindmap"""
# Hauptkategorien
main_categories = [
{
"name": "Philosophie",
# Automatische Datenbankinitialisierung - Aktualisiert für Flask 2.2+ Kompatibilität
def initialize_app():
"""Initialisierung der Anwendung"""
print("Initialisierung der Anwendung...")
with app.app_context():
# Prüfen, ob die Datenbank existiert und initialisiert ist
try:
# Prüfen, ob Tabellen existieren
db.create_all()
# Prüfen, ob Stammdaten vorhanden sind
if User.query.count() == 0:
print("Erstelle Standardbenutzer...")
create_default_users()
if Category.query.count() == 0:
print("Erstelle Standardkategorien...")
create_default_categories()
if MindMapNode.query.count() == 0 and Category.query.count() > 0:
print("Erstelle Beispiel-Mindmap...")
create_sample_mindmap()
print("Datenbank wurde erfolgreich initialisiert.")
except Exception as e:
import traceback
print(f"Fehler bei der Datenbankinitialisierung: {e}")
print(traceback.format_exc())
# Moderne Methode für die Datenbankinitialisierung in Flask 2.2+
with app.app_context():
initialize_app()
def create_sample_mindmap():
"""Erstellt eine Beispiel-Mindmap mit Knoten und Beziehungen"""
# Kategorien für die Zuordnung
categories = Category.query.all()
category_map = {cat.name: cat for cat in categories}
# Beispielknoten erstellen
nodes = [
{
'name': 'Wissensmanagement',
'description': 'Systematische Erfassung, Speicherung und Nutzung von Wissen in Organisationen.',
'color_code': '#6366f1',
'icon': 'database',
'category': category_map.get('Philosophie'),
'x': 0,
'y': 0
},
{
'name': 'Mind-Mapping',
'description': 'Technik zur visuellen Darstellung von Informationen und Zusammenhängen.',
'color_code': '#10b981',
'icon': 'git-branch',
'category': category_map.get('Technologie'),
'x': 200,
'y': -150
},
{
'name': 'Cytoscape.js',
'description': 'JavaScript-Bibliothek für die Visualisierung und Manipulation von Graphen.',
'color_code': '#3b82f6',
'icon': 'code',
'category': category_map.get('Technologie'),
'x': 350,
'y': -50
},
{
'name': 'Socket.IO',
'description': 'Bibliothek für Echtzeit-Kommunikation zwischen Client und Server.',
'color_code': '#3b82f6',
'icon': 'zap',
'category': category_map.get('Technologie'),
'x': 350,
'y': 100
},
{
'name': 'Kollaboration',
'description': 'Zusammenarbeit mehrerer Benutzer an gemeinsamen Inhalten.',
'color_code': '#f59e0b',
'icon': 'users',
'category': category_map.get('Psychologie'),
'x': 200,
'y': 150
},
{
'name': 'SQLite',
'description': 'Leichtgewichtige relationale Datenbank, die ohne Server-Prozess auskommt.',
'color_code': '#3b82f6',
'icon': 'database',
'category': category_map.get('Technologie'),
'x': 0,
'y': 200
},
{
'name': 'Flask',
'description': 'Leichtgewichtiges Python-Webframework für die Entwicklung von Webanwendungen.',
'color_code': '#3b82f6',
'icon': 'server',
'category': category_map.get('Technologie'),
'x': -200,
'y': 150
},
{
'name': 'REST API',
'description': 'Architekturstil für verteilte Systeme, insbesondere Webanwendungen.',
'color_code': '#10b981',
'icon': 'link',
'category': category_map.get('Wissenschaft'),
'x': -200,
'y': -150
}
]
# Erstelle einen zentralen "Wissen"-Knoten
wissen_node = MindMapNode.query.filter_by(name="Wissen").first()
if not wissen_node:
wissen_node = MindMapNode(
name="Wissen",
description="Zentrale Wissensbasis",
color_code="#4299E1",
icon="brain",
is_public=True
)
db.session.add(wissen_node)
db.session.flush()
# Erstelle die Knoten und verbinde sie mit dem Wissen-Knoten
created_nodes = []
for node_data in nodes:
node = MindMapNode(
name=node_data['name'],
description=node_data['description'],
color_code=node_data['color_code'],
icon=node_data.get('icon', 'circle'),
is_public=True,
category=node_data.get('category')
)
db.session.add(node)
db.session.flush()
# Verbinde mit dem Wissen-Knoten
wissen_node.children.append(node)
created_nodes.append(node)
# Erstelle einige Verbindungen zwischen den Knoten
if len(created_nodes) >= 2:
# Verbinde einige Knoten miteinander
created_nodes[0].children.append(created_nodes[1]) # Wissensmanagement -> Mind-Mapping
if len(created_nodes) >= 3:
created_nodes[1].children.append(created_nodes[2]) # Mind-Mapping -> Cytoscape.js
db.session.commit()
print("Beispiel-Mindmap wurde erstellt!")
def create_default_categories():
"""Erstellt die Standardkategorien für die Mindmap"""
# Hauptkategorien
@@ -2130,4 +1967,33 @@ def get_mindmap_node(node_id):
return jsonify({
'success': False,
'error': 'Mindmap-Daten konnten nicht geladen werden'
}), 500
}), 500
# Automatische Datenbankinitialisierung - Aktualisiert für Flask 2.2+ Kompatibilität
def initialize_app():
"""Initialisierung der Anwendung"""
print("Initialisierung der Anwendung...")
with app.app_context():
# Prüfen, ob die Datenbank existiert und initialisiert ist
try:
# Prüfen, ob Tabellen existieren
db.create_all()
# Prüfen, ob Stammdaten vorhanden sind
if User.query.count() == 0:
print("Erstelle Standardbenutzer...")
create_default_users()
# Wir nutzen die initialize_database Funktion für Kategorien und Mindmap
# Diese Funktionalität ist bereits dort implementiert
initialize_database()
print("Datenbank wurde erfolgreich initialisiert.")
except Exception as e:
import traceback
print(f"Fehler bei der Datenbankinitialisierung: {e}")
print(traceback.format_exc())
# Moderne Methode für die Datenbankinitialisierung in Flask 2.2+
with app.app_context():
initialize_app()

Binary file not shown.