diff --git a/__pycache__/app.cpython-313.pyc b/__pycache__/app.cpython-313.pyc index 1904069..2cb22aa 100644 Binary files a/__pycache__/app.cpython-313.pyc and b/__pycache__/app.cpython-313.pyc differ diff --git a/app.py b/app.py index 235b4f6..2b712f8 100644 --- a/app.py +++ b/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 \ No newline at end of file + }), 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() \ No newline at end of file diff --git a/database/systades.db b/database/systades.db index 0c2eac2..8777027 100644 Binary files a/database/systades.db and b/database/systades.db differ