#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Skript zum Hinzufügen von Testdruckern zur Datenbank """ import sys import os from datetime import datetime # Füge das Anwendungsverzeichnis zum Python-Pfad hinzu sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from models import get_db_session, Printer def add_test_printers(): """Fügt Testdrucker zur Datenbank hinzu""" test_printers = [ { "name": "Prusa i3 MK3S+", "model": "Prusa i3 MK3S+", "location": "Labor A - Arbeitsplatz 1", "mac_address": "AA:BB:CC:DD:EE:01", "plug_ip": "192.168.1.101", "status": "available", "active": True }, { "name": "Ender 3 V2", "model": "Creality Ender 3 V2", "location": "Labor A - Arbeitsplatz 2", "mac_address": "AA:BB:CC:DD:EE:02", "plug_ip": "192.168.1.102", "status": "available", "active": True }, { "name": "Ultimaker S3", "model": "Ultimaker S3", "location": "Labor B - Arbeitsplatz 1", "mac_address": "AA:BB:CC:DD:EE:03", "plug_ip": "192.168.1.103", "status": "available", "active": True }, { "name": "Bambu Lab X1 Carbon", "model": "Bambu Lab X1 Carbon", "location": "Labor B - Arbeitsplatz 2", "mac_address": "AA:BB:CC:DD:EE:04", "plug_ip": "192.168.1.104", "status": "available", "active": True }, { "name": "Formlabs Form 3", "model": "Formlabs Form 3", "location": "Labor C - Harz-Bereich", "mac_address": "AA:BB:CC:DD:EE:05", "plug_ip": "192.168.1.105", "status": "offline", "active": False } ] db_session = get_db_session() try: added_count = 0 for printer_data in test_printers: # Prüfen, ob Drucker bereits existiert existing = db_session.query(Printer).filter( Printer.name == printer_data["name"] ).first() if existing: print(f"⚠️ Drucker '{printer_data['name']}' existiert bereits - überspringe") continue # Neuen Drucker erstellen new_printer = Printer( name=printer_data["name"], model=printer_data["model"], location=printer_data["location"], mac_address=printer_data["mac_address"], plug_ip=printer_data["plug_ip"], status=printer_data["status"], active=printer_data["active"], created_at=datetime.now() ) db_session.add(new_printer) added_count += 1 print(f"✅ Drucker '{printer_data['name']}' hinzugefügt") if added_count > 0: db_session.commit() print(f"\n🎉 {added_count} Testdrucker erfolgreich zur Datenbank hinzugefügt!") else: print("\n📋 Alle Testdrucker existieren bereits in der Datenbank") # Zeige alle Drucker in der Datenbank all_printers = db_session.query(Printer).all() print(f"\n📊 Gesamt {len(all_printers)} Drucker in der Datenbank:") print("-" * 80) print(f"{'ID':<4} {'Name':<20} {'Modell':<20} {'Status':<12} {'Aktiv':<6}") print("-" * 80) for printer in all_printers: active_str = "✅" if printer.active else "❌" print(f"{printer.id:<4} {printer.name[:19]:<20} {(printer.model or 'Unbekannt')[:19]:<20} {printer.status:<12} {active_str:<6}") db_session.close() except Exception as e: db_session.rollback() db_session.close() print(f"❌ Fehler beim Hinzufügen der Testdrucker: {str(e)}") return False return True def remove_test_printers(): """Entfernt alle Testdrucker aus der Datenbank""" test_printer_names = [ "Prusa i3 MK3S+", "Ender 3 V2", "Ultimaker S3", "Bambu Lab X1 Carbon", "Formlabs Form 3" ] db_session = get_db_session() try: removed_count = 0 for name in test_printer_names: printer = db_session.query(Printer).filter(Printer.name == name).first() if printer: db_session.delete(printer) removed_count += 1 print(f"🗑️ Drucker '{name}' entfernt") if removed_count > 0: db_session.commit() print(f"\n🧹 {removed_count} Testdrucker erfolgreich entfernt!") else: print("\n📋 Keine Testdrucker zum Entfernen gefunden") db_session.close() except Exception as e: db_session.rollback() db_session.close() print(f"❌ Fehler beim Entfernen der Testdrucker: {str(e)}") return False return True if __name__ == "__main__": print("=== MYP Druckerverwaltung - Testdrucker-Verwaltung ===") print() if len(sys.argv) > 1 and sys.argv[1] == "--remove": print("Entferne Testdrucker...") remove_test_printers() else: print("Füge Testdrucker hinzu...") print("(Verwende --remove um Testdrucker zu entfernen)") print() add_test_printers() print("\nFertig! 🚀")