chore: Änderungen commited
This commit is contained in:
Binary file not shown.
194
app.py
194
app.py
@@ -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.
Reference in New Issue
Block a user