"feat: Update README
This commit is contained in:
@@ -590,14 +590,38 @@ def get_printers():
|
||||
|
||||
try:
|
||||
printers = db_session.query(Printer).all()
|
||||
printer_list = [printer.to_dict() for printer in printers]
|
||||
|
||||
# Optimierte Drucker-Liste mit schneller Status-Bestimmung
|
||||
printer_list = []
|
||||
for printer in printers:
|
||||
# Bestimme Status basierend auf hardkodierten Druckern
|
||||
printer_config = PRINTERS.get(printer.name)
|
||||
if printer_config:
|
||||
status = "available" # Drucker verfügbar
|
||||
active = True
|
||||
else:
|
||||
status = "offline"
|
||||
active = False
|
||||
|
||||
# Aktualisiere Status in der Datenbank
|
||||
printer.status = status
|
||||
printer.active = active
|
||||
|
||||
printer_data = printer.to_dict()
|
||||
printer_data["status"] = status
|
||||
printer_data["active"] = active
|
||||
printer_list.append(printer_data)
|
||||
|
||||
# Speichere Updates
|
||||
db_session.commit()
|
||||
db_session.close()
|
||||
|
||||
return jsonify({
|
||||
"printers": printer_list
|
||||
})
|
||||
except Exception as e:
|
||||
printers_logger.error(f"Fehler beim Abrufen der Drucker: {str(e)}")
|
||||
db_session.rollback()
|
||||
db_session.close()
|
||||
return jsonify({"error": "Interner Serverfehler"}), 500
|
||||
|
||||
@@ -715,23 +739,47 @@ def get_activity():
|
||||
@app.route("/api/printers/status", methods=["GET"])
|
||||
@login_required
|
||||
def get_printers_status():
|
||||
"""Gibt den Status aller Drucker zurück."""
|
||||
"""Gibt den Status aller Drucker zurück - optimiert für schnelle Antwort."""
|
||||
db_session = get_db_session()
|
||||
try:
|
||||
printers = db_session.query(Printer).all()
|
||||
status_data = [
|
||||
{
|
||||
|
||||
# Schnelle Status-Bestimmung basierend auf hardkodierten Druckern
|
||||
status_data = []
|
||||
for printer in printers:
|
||||
# Bestimme Status basierend auf IP-Adresse aus der Konfiguration
|
||||
printer_config = PRINTERS.get(printer.name)
|
||||
if printer_config:
|
||||
# Drucker ist in der Konfiguration -> als online betrachten
|
||||
status = "online"
|
||||
active = True
|
||||
else:
|
||||
# Drucker nicht in Konfiguration -> offline
|
||||
status = "offline"
|
||||
active = False
|
||||
|
||||
# Aktualisiere den Status in der Datenbank für Konsistenz
|
||||
printer.status = status
|
||||
printer.active = active
|
||||
|
||||
status_data.append({
|
||||
"id": printer.id,
|
||||
"name": printer.name,
|
||||
"status": printer.status,
|
||||
"active": printer.active
|
||||
}
|
||||
for printer in printers
|
||||
]
|
||||
"status": status,
|
||||
"active": active,
|
||||
"ip_address": printer.ip_address,
|
||||
"location": printer.location
|
||||
})
|
||||
|
||||
# Speichere die aktualisierten Status
|
||||
db_session.commit()
|
||||
db_session.close()
|
||||
|
||||
return jsonify(status_data)
|
||||
except Exception as e:
|
||||
db_session.rollback()
|
||||
db_session.close()
|
||||
printers_logger.error(f"Fehler beim Abrufen des Drucker-Status: {str(e)}")
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
@app.route("/api/jobs/current", methods=["GET"])
|
||||
|
Reference in New Issue
Block a user