🔧 Update: Enhanced error handling and logging across various modules

**Änderungen:**
-  app.py: Hinzugefügt, um CSRF-Fehler zu behandeln
-  models.py: Fehlerprotokollierung bei der Suche nach Gastanfragen per OTP
-  api.py: Fehlerprotokollierung beim Markieren von Benachrichtigungen als gelesen
-  calendar.py: Fallback-Daten zurückgeben, wenn keine Kalenderereignisse vorhanden sind
-  guest.py: Status-Check-Seite für Gäste aktualisiert
-  hardware_integration.py: Debugging-Informationen für erweiterte Geräteinformationen hinzugefügt
-  tapo_status_manager.py: Rückgabewert für Statusabfrage hinzugefügt

**Ergebnis:**
- Verbesserte Fehlerbehandlung und Protokollierung für eine robustere Anwendung
- Bessere Nachverfolgbarkeit von Fehlern und Systemverhalten

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-06-15 22:45:20 +02:00
parent 7e156099d5
commit 956c24d8ca
552 changed files with 11252 additions and 2424 deletions

View File

@ -766,13 +766,13 @@
<div class="mt-6 flex flex-wrap items-center justify-between gap-4">
<div class="flex flex-wrap gap-4">
<div class="flex items-center">
<input type="checkbox" id="show-offline" class="w-4 h-4 text-mercedes-blue rounded">
<input type="checkbox" id="show-offline" class="w-4 h-4 text-mercedes-blue rounded" checked>
<label for="show-offline" class="ml-2 text-sm text-mercedes-gray dark:text-slate-400">
Offline-Drucker anzeigen
</label>
</div>
<div class="flex items-center">
<input type="checkbox" id="show-maintenance" class="w-4 h-4 text-mercedes-blue rounded">
<input type="checkbox" id="show-maintenance" class="w-4 h-4 text-mercedes-blue rounded" checked>
<label for="show-maintenance" class="ml-2 text-sm text-mercedes-gray dark:text-slate-400">
Wartungsmodus anzeigen
</label>
@ -1751,6 +1751,23 @@ class PrinterManager {
container: 'status-unconfigured',
iconBg: 'bg-indigo-100 dark:bg-indigo-900/30 text-indigo-600',
badge: 'bg-indigo-100 text-indigo-800 dark:bg-indigo-900/30 dark:text-indigo-400'
},
// Neue Status für Tapo-basierte Logik
'available': {
container: 'status-available',
iconBg: 'bg-green-100 dark:bg-green-900/30 text-green-600',
badge: 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400'
},
'busy': {
container: 'status-busy',
iconBg: 'bg-orange-100 dark:bg-orange-900/30 text-orange-600',
badge: 'bg-orange-100 text-orange-800 dark:bg-orange-900/30 dark:text-orange-400'
},
// Aliases für Rückwärtskompatibilität
'idle': {
container: 'status-online',
iconBg: 'bg-green-100 dark:bg-green-900/30 text-green-600',
badge: 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400'
}
};
return classes[status] || classes['offline'];
@ -1763,24 +1780,30 @@ class PrinterManager {
'printing': '<div class="w-3 h-3 bg-blue-500 rounded-full status-pulse"></div>',
'error': '<div class="w-3 h-3 bg-orange-500 rounded-full"></div>',
'maintenance': '<div class="w-3 h-3 bg-purple-500 rounded-full"></div>',
'idle': '<div class="w-3 h-3 bg-green-500 rounded-full"></div>',
'standby': '<div class="w-3 h-3 bg-yellow-500 rounded-full"></div>',
'unreachable': '<div class="w-3 h-3 bg-gray-500 rounded-full"></div>',
'unconfigured': '<div class="w-3 h-3 bg-indigo-500 rounded-full"></div>'
'unconfigured': '<div class="w-3 h-3 bg-indigo-500 rounded-full"></div>',
// Neue Status für Tapo-basierte Logik
'available': '<div class="w-3 h-3 bg-green-500 rounded-full"></div>',
'busy': '<div class="w-3 h-3 bg-orange-500 rounded-full status-pulse"></div>'
};
return icons[status] || icons['offline'];
}
getStatusText(status) {
const texts = {
'online': 'Online',
'offline': 'Offline',
'printing': 'Druckt',
'online': 'Verfügbar & Frei', // Steckdose erreichbar & aus → kann reserviert werden
'offline': 'Nicht erreichbar', // Steckdose nicht erreichbar
'printing': 'Druckt - Besetzt', // Steckdose erreichbar & an → Drucker läuft
'error': 'Fehler',
'maintenance': 'Wartung',
'idle': 'Bereit',
'idle': 'Verfügbar & Frei', // Alias für online
'standby': 'Standby',
'unreachable': 'Unerreichbar',
'unconfigured': 'Nicht konfiguriert'
'unreachable': 'Nicht erreichbar', // Alias für offline
'unconfigured': 'Nicht konfiguriert',
'available': 'Verfügbar & Frei', // Neuer Status für "aus"
'busy': 'Druckt - Besetzt' // Neuer Status für "an"
};
return texts[status] || status;
}