#!/usr/bin/env python3 """ Skript zum Hinzufügen der hardkodierten Drucker in die Datenbank. """ import sys import os sys.path.append('.') from config.settings import PRINTERS from database.db_manager import DatabaseManager from models import Printer from datetime import datetime def add_hardcoded_printers(): """Fügt die hardkodierten Drucker in die Datenbank ein.""" print("=== Hardkodierte Drucker hinzufügen ===") print(f"Zu erstellende Drucker: {len(PRINTERS)}") try: db = DatabaseManager() session = db.get_session() added_count = 0 for printer_name, config in PRINTERS.items(): # Prüfen, ob Drucker bereits existiert existing = session.query(Printer).filter(Printer.name == printer_name).first() if existing: print(f"⚠️ {printer_name}: Bereits vorhanden (ID: {existing.id})") continue # Neuen Drucker erstellen new_printer = Printer( name=printer_name, model="P115", # Standard-Modell location="Werk 040 - Berlin - TBA", # Aktualisierter Standort ip_address=config["ip"], mac_address=f"98:25:4A:E1:{printer_name[-1]}0:0{printer_name[-1]}", # Dummy MAC plug_ip=config["ip"], plug_username="admin", plug_password="admin", status="available", # Verfügbar, da in Konfiguration active=True, created_at=datetime.now() ) session.add(new_printer) print(f"✅ {printer_name}: Hinzugefügt (IP: {config['ip']})") added_count += 1 # Änderungen speichern session.commit() session.close() print(f"\n✅ {added_count} neue Drucker hinzugefügt") print("Drucker-Erstellung abgeschlossen!") except Exception as e: print(f"❌ Fehler beim Hinzufügen: {e}") if 'session' in locals(): session.rollback() session.close() def list_all_printers(): """Zeigt alle Drucker in der Datenbank an.""" print("\n=== Alle Drucker in der Datenbank ===") try: db = DatabaseManager() session = db.get_session() printers = session.query(Printer).all() if not printers: print("Keine Drucker in der Datenbank gefunden.") return print(f"{'ID':<5} {'Name':<15} {'Status':<12} {'IP-Adresse':<15} {'Aktiv':<8}") print("-" * 60) for printer in printers: active_str = "✅" if printer.active else "❌" print(f"{printer.id:<5} {printer.name:<15} {printer.status:<12} {printer.ip_address:<15} {active_str:<8}") session.close() except Exception as e: print(f"❌ Fehler beim Abrufen: {e}") if 'session' in locals(): session.close() if __name__ == "__main__": print("Hardkodierte Drucker-Erstellung") print("=" * 35) # Aktuelle Drucker anzeigen list_all_printers() # Hardkodierte Drucker hinzufügen add_hardcoded_printers() # Alle Drucker anzeigen list_all_printers()