🎉 Improved cursor rules and expanded logging system across backend files. 🖥️📝
This commit is contained in:
670
.cursorrules
670
.cursorrules
@@ -1 +1,671 @@
|
|||||||
|
# MYP Druckerverwaltungssystem - Cursor Rules
|
||||||
|
# Mercedes-Benz 3D-Druck-Management-Platform
|
||||||
|
|
||||||
|
## 🎯 PROJEKT-KONTEXT
|
||||||
|
|
||||||
|
Das MYP-System ist eine cyber-physische Lösung zur Verwaltung von 3D-Druckern mit Smart-Plug-Technologie für Mercedes-Benz.
|
||||||
|
|
||||||
|
**Technischer Stack:**
|
||||||
|
- Backend: Flask + SQLAlchemy + SQLite
|
||||||
|
- Frontend: Jinja2-Templates + CSS/JS
|
||||||
|
- Hardware: Raspberry Pi + TP-Link Tapo P110
|
||||||
|
- Deployment: Air-Gapped Production Environment
|
||||||
|
|
||||||
|
## 🔑 KERN-PRINZIPIEN
|
||||||
|
|
||||||
|
### SPRACHE & DOKUMENTATION
|
||||||
|
- **Ausschließlich formales Deutsch** für alle Kommentare, Docstrings, UI-Texte und Dokumentation
|
||||||
|
- **Englisch nur für**: Code-Variablen, Funktionsnamen, Git-Commits
|
||||||
|
- Umfassende Docstrings nach deutschem Standard
|
||||||
|
- Inline-Kommentare für komplexe Logik
|
||||||
|
|
||||||
|
### QUALITÄTS-STANDARD
|
||||||
|
- **Produktionsreife** bei jedem Commit - keine experimentellen Features ohne vollständige Tests
|
||||||
|
- **Zero-Downtime-Code** - jede Änderung muss sofort funktionsfähig sein
|
||||||
|
- **Defense Programming** - umfassende Error-Handling und Validation
|
||||||
|
- **Performance-optimiert** für Raspberry Pi Hardware-Umgebung
|
||||||
|
|
||||||
|
### CASCADE-ANALYSE PROTOKOLL
|
||||||
|
Vor jeder Änderung ZWINGEND analysieren:
|
||||||
|
```python
|
||||||
|
# IMPACT-ANALYSE-TEMPLATE:
|
||||||
|
# 1. Betroffene Module: [Liste]
|
||||||
|
# 2. API-Endpunkte: [Liste]
|
||||||
|
# 3. Datenbank-Schema: [Änderungen]
|
||||||
|
# 4. Frontend-Komponenten: [Liste]
|
||||||
|
# 5. Hardware-Integration: [Tapo/Drucker]
|
||||||
|
# 6. Session/Auth: [Auswirkungen]
|
||||||
|
# 7. Background-Jobs: [Timer/Scheduler]
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📁 PROJEKTSTRUKTUR-REGELN
|
||||||
|
|
||||||
|
### CORE-DATEIEN (NIEMALS OHNE CASCADE-ANALYSE ÄNDERN)
|
||||||
|
- `backend/app.py` - Flask-Haupteinstiegspunkt
|
||||||
|
- `backend/models.py` - SQLAlchemy-Datenmodelle
|
||||||
|
- `backend/utils/settings.py` - Zentrale Konfiguration
|
||||||
|
- `backend/blueprints/` - REST-API-Endpunkte
|
||||||
|
|
||||||
|
### DATEI-ORGANISIERUNG
|
||||||
|
- **Markdown-Dateien (.md)**: Automatisch in `docs/` speichern (außer README.md)
|
||||||
|
- **Upload-Struktur**: Hierarchisch nach Jahr/Monat
|
||||||
|
- **Logs**: Strukturiert nach Modulen in `backend/logs/`
|
||||||
|
- **Backups**: Automatisch in `database/backups/`
|
||||||
|
|
||||||
|
### KEINE WINDOWS-SPEZIFISCHEN DATEIEN
|
||||||
|
- Keine .bat, .ps1, .cmd Dateien
|
||||||
|
- Keine Windows-Registry-Zugriffe
|
||||||
|
- Linux/Unix-Shell-Scripts bevorzugen
|
||||||
|
- Cross-platform Python-Lösungen
|
||||||
|
|
||||||
|
## 🏗️ BACKEND-ENTWICKLUNG (FLASK)
|
||||||
|
|
||||||
|
### BLUEPRINT-STRUKTUR
|
||||||
|
```python
|
||||||
|
# Standard Blueprint-Template
|
||||||
|
from flask import Blueprint, request, jsonify, session
|
||||||
|
from backend.models import db, User, Printer, Job
|
||||||
|
from backend.utils.permissions import require_role
|
||||||
|
from backend.utils.logging_config import get_logger
|
||||||
|
|
||||||
|
# Deutsche Kommentare für Business-Logic
|
||||||
|
blueprint_name = Blueprint('name', __name__)
|
||||||
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
@blueprint_name.route('/endpoint', methods=['POST'])
|
||||||
|
@require_role('admin') # Berechtigungsprüfung
|
||||||
|
def function_name():
|
||||||
|
"""
|
||||||
|
Funktion-Beschreibung auf Deutsch.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: Antwort-Struktur mit Status und Daten
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# Geschäftslogik mit deutschen Kommentaren
|
||||||
|
pass
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Fehler in {function_name.__name__}: {str(e)}")
|
||||||
|
return jsonify({'error': 'Detaillierte deutsche Fehlermeldung'}), 500
|
||||||
|
```
|
||||||
|
|
||||||
|
### DATENBANK-PATTERNS
|
||||||
|
```python
|
||||||
|
# SQLAlchemy-Modell-Standard
|
||||||
|
class ModelName(db.Model):
|
||||||
|
"""Deutsche Modell-Beschreibung."""
|
||||||
|
|
||||||
|
__tablename__ = 'table_name'
|
||||||
|
|
||||||
|
# Felder mit deutschen Kommentaren
|
||||||
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||||
|
|
||||||
|
def to_dict(self):
|
||||||
|
"""Konvertierung zu Dictionary für JSON-Serialisierung."""
|
||||||
|
return {
|
||||||
|
'id': self.id,
|
||||||
|
'created_at': self.created_at.isoformat() if self.created_at else None
|
||||||
|
}
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def create_with_validation(cls, **kwargs):
|
||||||
|
"""Factory-Methode mit Validierung."""
|
||||||
|
# Validierungslogik
|
||||||
|
pass
|
||||||
|
```
|
||||||
|
|
||||||
|
### HARDWARE-INTEGRATION (TAPO)
|
||||||
|
```python
|
||||||
|
# Tapo-Controller-Pattern
|
||||||
|
from backend.utils.tapo_controller import TapoController
|
||||||
|
|
||||||
|
async def control_printer_power(printer_id: int, action: str):
|
||||||
|
"""
|
||||||
|
Steuerung der Drucker-Stromversorgung über Smart-Plug.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
printer_id: Eindeutige Drucker-ID
|
||||||
|
action: 'on', 'off', 'status'
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: Status und Ergebnis der Operation
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
controller = TapoController()
|
||||||
|
result = await controller.execute_action(printer_id, action)
|
||||||
|
|
||||||
|
# Logging für Hardware-Operationen
|
||||||
|
logger.info(f"Drucker {printer_id}: {action} - Status: {result}")
|
||||||
|
|
||||||
|
return {'success': True, 'data': result}
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Tapo-Steuerung fehlgeschlagen: {str(e)}")
|
||||||
|
return {'success': False, 'error': str(e)}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🎨 FRONTEND-ENTWICKLUNG (JINJA2)
|
||||||
|
|
||||||
|
### TEMPLATE-STRUKTUR
|
||||||
|
```html
|
||||||
|
<!-- Standard Template-Header -->
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% set page_title = "Deutsche Seitentitel" %}
|
||||||
|
{% set page_description = "Deutsche Beschreibung" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="container-fluid">
|
||||||
|
<!-- Deutsche UI-Texte -->
|
||||||
|
<h1>{{ page_title }}</h1>
|
||||||
|
|
||||||
|
<!-- Form-Validation mit deutschen Meldungen -->
|
||||||
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||||
|
{% if messages %}
|
||||||
|
{% for category, message in messages %}
|
||||||
|
<div class="alert alert-{{ 'danger' if category == 'error' else category }}">
|
||||||
|
{{ message }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block scripts %}
|
||||||
|
<script>
|
||||||
|
// Deutsche JavaScript-Kommentare für UI-Logik
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// Initialisierung mit Error-Handling
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
```
|
||||||
|
|
||||||
|
### CSS/STYLING-REGELN
|
||||||
|
- **Mercedes-Designsprache** befolgen
|
||||||
|
- **Responsive Design** für Touch-Interfaces (Kiosk-Modus)
|
||||||
|
- **Accessibility** (WCAG 2.1 AA)
|
||||||
|
- **Performance** für Raspberry Pi optimiert
|
||||||
|
|
||||||
|
## 🔧 UTILITY-ENTWICKLUNG
|
||||||
|
|
||||||
|
### LOGGING-STANDARD
|
||||||
|
```python
|
||||||
|
from backend.utils.logging_config import get_logger
|
||||||
|
|
||||||
|
logger = get_logger(__name__)
|
||||||
|
|
||||||
|
def business_function():
|
||||||
|
"""Deutsche Funktionsbeschreibung."""
|
||||||
|
logger.info("Vorgang gestartet: {function_name}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Geschäftslogik
|
||||||
|
logger.debug("Zwischenschritt erfolgreich")
|
||||||
|
|
||||||
|
except ValidationError as e:
|
||||||
|
logger.warning(f"Validierungsfehler: {str(e)}")
|
||||||
|
raise
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Unerwarteter Fehler in {function_name}: {str(e)}")
|
||||||
|
# Error-Recovery-Logik
|
||||||
|
raise
|
||||||
|
|
||||||
|
finally:
|
||||||
|
logger.info("Vorgang abgeschlossen: {function_name}")
|
||||||
|
```
|
||||||
|
|
||||||
|
### PERMISSION-SYSTEM
|
||||||
|
```python
|
||||||
|
from functools import wraps
|
||||||
|
from flask import session, abort
|
||||||
|
|
||||||
|
def require_role(required_role: str):
|
||||||
|
"""Decorator für rollenbasierte Zugriffskontrolle."""
|
||||||
|
def decorator(f):
|
||||||
|
@wraps(f)
|
||||||
|
def decorated_function(*args, **kwargs):
|
||||||
|
if 'user_id' not in session:
|
||||||
|
abort(401) # Nicht authentifiziert
|
||||||
|
|
||||||
|
user = User.query.get(session['user_id'])
|
||||||
|
if not user or user.role != required_role:
|
||||||
|
logger.warning(f"Unauthorisierter Zugriff: {session.get('username', 'Unknown')} -> {f.__name__}")
|
||||||
|
abort(403) # Nicht autorisiert
|
||||||
|
|
||||||
|
return f(*args, **kwargs)
|
||||||
|
return decorated_function
|
||||||
|
return decorator
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📊 DATENBANK-STANDARDS
|
||||||
|
|
||||||
|
### MIGRATION-PATTERN
|
||||||
|
```python
|
||||||
|
# Sichere Schema-Änderungen
|
||||||
|
def upgrade_database():
|
||||||
|
"""Database-Schema-Upgrade mit Backup."""
|
||||||
|
try:
|
||||||
|
# 1. Backup erstellen
|
||||||
|
backup_manager.create_backup()
|
||||||
|
|
||||||
|
# 2. Schema-Änderungen
|
||||||
|
db.engine.execute("ALTER TABLE...")
|
||||||
|
|
||||||
|
# 3. Daten-Migration
|
||||||
|
migrate_existing_data()
|
||||||
|
|
||||||
|
# 4. Validierung
|
||||||
|
validate_schema_integrity()
|
||||||
|
|
||||||
|
logger.info("Database-Upgrade erfolgreich")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Database-Upgrade fehlgeschlagen: {str(e)}")
|
||||||
|
# Rollback-Mechanismus
|
||||||
|
backup_manager.restore_latest()
|
||||||
|
raise
|
||||||
|
```
|
||||||
|
|
||||||
|
### CONNECTION-MANAGEMENT
|
||||||
|
```python
|
||||||
|
# SQLite-optimiert für Air-Gapped-Umgebung
|
||||||
|
def get_db_connection():
|
||||||
|
"""Thread-safe Database-Connection mit Connection-Pooling."""
|
||||||
|
return db.engine.connect()
|
||||||
|
|
||||||
|
@contextmanager
|
||||||
|
def transaction_scope():
|
||||||
|
"""Transaction-Manager mit automatischem Rollback."""
|
||||||
|
connection = get_db_connection()
|
||||||
|
trans = connection.begin()
|
||||||
|
try:
|
||||||
|
yield connection
|
||||||
|
trans.commit()
|
||||||
|
except Exception:
|
||||||
|
trans.rollback()
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
connection.close()
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 DEPLOYMENT & PRODUCTION
|
||||||
|
|
||||||
|
### SYSTEMD-SERVICE-PATTERN
|
||||||
|
```ini
|
||||||
|
# Produktions-Service-Template
|
||||||
|
[Unit]
|
||||||
|
Description=MYP Druckerverwaltungssystem
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=notify
|
||||||
|
User=myp
|
||||||
|
Group=myp
|
||||||
|
WorkingDirectory=/opt/myp
|
||||||
|
Environment=FLASK_ENV=production
|
||||||
|
ExecStart=/opt/myp/venv/bin/python app.py
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
```
|
||||||
|
|
||||||
|
### KIOSK-MODUS-SETUP
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
# Raspberry Pi Kiosk-Setup
|
||||||
|
# Deutsche Kommentare für Setup-Scripts
|
||||||
|
|
||||||
|
# Display-Konfiguration für Touch-Interface
|
||||||
|
export DISPLAY=:0
|
||||||
|
xset s off
|
||||||
|
xset -dpms
|
||||||
|
xset s noblank
|
||||||
|
|
||||||
|
# Browser-Start mit MYP-Interface
|
||||||
|
chromium-browser \
|
||||||
|
--kiosk \
|
||||||
|
--disable-infobars \
|
||||||
|
--disable-session-crashed-bubble \
|
||||||
|
https://localhost/kiosk
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🧪 TESTING-STANDARDS
|
||||||
|
|
||||||
|
### UNIT-TEST-TEMPLATE
|
||||||
|
```python
|
||||||
|
import pytest
|
||||||
|
from backend.app import create_app
|
||||||
|
from backend.models import db, User, Printer
|
||||||
|
|
||||||
|
class TestDruckerVerwaltung:
|
||||||
|
"""Test-Suite für Drucker-Management-Funktionen."""
|
||||||
|
|
||||||
|
def setup_method(self):
|
||||||
|
"""Test-Environment-Setup."""
|
||||||
|
self.app = create_app('testing')
|
||||||
|
self.client = self.app.test_client()
|
||||||
|
|
||||||
|
with self.app.app_context():
|
||||||
|
db.create_all()
|
||||||
|
self.create_test_data()
|
||||||
|
|
||||||
|
def test_drucker_erstellen(self):
|
||||||
|
"""Test: Neuen Drucker erfolgreich erstellen."""
|
||||||
|
# Given: Test-Daten
|
||||||
|
drucker_daten = {
|
||||||
|
'name': 'Test-Drucker-001',
|
||||||
|
'standort': 'Berlin-Marienfelde',
|
||||||
|
'tapo_ip': '192.168.1.100'
|
||||||
|
}
|
||||||
|
|
||||||
|
# When: API-Aufruf
|
||||||
|
response = self.client.post('/api/printers', json=drucker_daten)
|
||||||
|
|
||||||
|
# Then: Erfolgreiche Erstellung
|
||||||
|
assert response.status_code == 201
|
||||||
|
assert 'id' in response.json
|
||||||
|
|
||||||
|
def teardown_method(self):
|
||||||
|
"""Test-Environment-Cleanup."""
|
||||||
|
with self.app.app_context():
|
||||||
|
db.drop_all()
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔒 SECURITY-REQUIREMENTS
|
||||||
|
|
||||||
|
### AUTHENTICATION-FLOW
|
||||||
|
```python
|
||||||
|
# Sichere Session-Verwaltung
|
||||||
|
@auth_bp.route('/login', methods=['POST'])
|
||||||
|
def login():
|
||||||
|
"""Benutzer-Authentifizierung mit Rate-Limiting."""
|
||||||
|
|
||||||
|
# Rate-Limiting für Brute-Force-Schutz
|
||||||
|
if not rate_limiter.check_limit(request.remote_addr):
|
||||||
|
logger.warning(f"Rate-Limit erreicht: {request.remote_addr}")
|
||||||
|
return jsonify({'error': 'Zu viele Anmeldeversuche'}), 429
|
||||||
|
|
||||||
|
# Credential-Validierung
|
||||||
|
username = request.json.get('username')
|
||||||
|
password = request.json.get('password')
|
||||||
|
|
||||||
|
user = User.authenticate(username, password)
|
||||||
|
if not user:
|
||||||
|
logger.warning(f"Fehlgeschlagene Anmeldung: {username}")
|
||||||
|
return jsonify({'error': 'Ungültige Anmeldedaten'}), 401
|
||||||
|
|
||||||
|
# Session-Erstellung mit CSRF-Token
|
||||||
|
session['user_id'] = user.id
|
||||||
|
session['csrf_token'] = generate_csrf_token()
|
||||||
|
|
||||||
|
logger.info(f"Erfolgreiche Anmeldung: {username}")
|
||||||
|
return jsonify({'success': True, 'user': user.to_dict()})
|
||||||
|
```
|
||||||
|
|
||||||
|
### INPUT-VALIDATION
|
||||||
|
```python
|
||||||
|
from marshmallow import Schema, fields, validate
|
||||||
|
|
||||||
|
class DruckerCreateSchema(Schema):
|
||||||
|
"""Validierungsschema für Drucker-Erstellung."""
|
||||||
|
|
||||||
|
name = fields.Str(required=True, validate=validate.Length(min=3, max=50))
|
||||||
|
standort = fields.Str(required=True, validate=validate.Length(min=5, max=100))
|
||||||
|
tapo_ip = fields.IP(required=True)
|
||||||
|
beschreibung = fields.Str(validate=validate.Length(max=500))
|
||||||
|
|
||||||
|
def validate_drucker_data(data):
|
||||||
|
"""Zentrale Validierung für Drucker-Daten."""
|
||||||
|
schema = DruckerCreateSchema()
|
||||||
|
errors = schema.validate(data)
|
||||||
|
|
||||||
|
if errors:
|
||||||
|
logger.warning(f"Validierungsfehler: {errors}")
|
||||||
|
raise ValidationError(errors)
|
||||||
|
|
||||||
|
return schema.load(data)
|
||||||
|
```
|
||||||
|
|
||||||
|
## ⚡ PERFORMANCE-OPTIMIERUNG
|
||||||
|
|
||||||
|
### DATABASE-QUERIES
|
||||||
|
```python
|
||||||
|
# Optimierte Queries für Raspberry Pi
|
||||||
|
def get_active_jobs_optimized():
|
||||||
|
"""Performance-optimierte Abfrage aktiver Jobs."""
|
||||||
|
return db.session.query(Job)\
|
||||||
|
.options(joinedload(Job.printer))\
|
||||||
|
.options(joinedload(Job.user))\
|
||||||
|
.filter(Job.status.in_(['running', 'scheduled']))\
|
||||||
|
.order_by(Job.start_time.asc())\
|
||||||
|
.limit(50)\
|
||||||
|
.all()
|
||||||
|
|
||||||
|
# Caching für häufige Abfragen
|
||||||
|
from functools import lru_cache
|
||||||
|
|
||||||
|
@lru_cache(maxsize=128)
|
||||||
|
def get_drucker_statistics(drucker_id: int):
|
||||||
|
"""Gecachte Drucker-Statistiken."""
|
||||||
|
return db.session.query(Job)\
|
||||||
|
.filter(Job.printer_id == drucker_id)\
|
||||||
|
.filter(Job.status == 'completed')\
|
||||||
|
.count()
|
||||||
|
```
|
||||||
|
|
||||||
|
### FRONTEND-PERFORMANCE
|
||||||
|
```javascript
|
||||||
|
// Optimiertes JavaScript für Touch-Interface
|
||||||
|
class MYPDashboard {
|
||||||
|
constructor() {
|
||||||
|
this.updateInterval = 30000; // 30 Sekunden
|
||||||
|
this.maxRetries = 3;
|
||||||
|
this.retryCount = 0;
|
||||||
|
|
||||||
|
this.initializeEventListeners();
|
||||||
|
this.startAutoUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateDashboard() {
|
||||||
|
try {
|
||||||
|
const response = await fetch('/api/dashboard-data');
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
this.renderDashboardData(data);
|
||||||
|
this.retryCount = 0; // Reset bei Erfolg
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Dashboard-Update fehlgeschlagen:', error);
|
||||||
|
this.handleUpdateError();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
handleUpdateError() {
|
||||||
|
this.retryCount++;
|
||||||
|
if (this.retryCount < this.maxRetries) {
|
||||||
|
// Exponential Backoff
|
||||||
|
setTimeout(() => this.updateDashboard(),
|
||||||
|
Math.pow(2, this.retryCount) * 1000);
|
||||||
|
} else {
|
||||||
|
this.showOfflineMode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📝 DOKUMENTATIONS-STANDARD
|
||||||
|
|
||||||
|
### FUNCTION-DOCSTRINGS
|
||||||
|
```python
|
||||||
|
def schedule_print_job(drucker_id: int, start_time: datetime,
|
||||||
|
duration_minutes: int, user_id: int) -> Dict[str, Any]:
|
||||||
|
"""
|
||||||
|
Planen eines Druckauftrags mit automatischer Smart-Plug-Steuerung.
|
||||||
|
|
||||||
|
Diese Funktion erstellt einen neuen Druckauftrag und konfiguriert
|
||||||
|
die automatische Ein-/Ausschaltung des zugeordneten Druckers über
|
||||||
|
das Tapo-Smart-Plug-System.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
drucker_id: Eindeutige ID des Zieldruckers
|
||||||
|
start_time: Geplanter Start des Druckauftrags (UTC)
|
||||||
|
duration_minutes: Geschätzte Druckdauer in Minuten
|
||||||
|
user_id: ID des anfragenden Benutzers
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: Enthält Job-ID, Status und Scheduler-Informationen
|
||||||
|
{
|
||||||
|
'job_id': int,
|
||||||
|
'status': str,
|
||||||
|
'scheduled_power_on': datetime,
|
||||||
|
'scheduled_power_off': datetime,
|
||||||
|
'tapo_status': str
|
||||||
|
}
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
ValidationError: Bei ungültigen Eingabedaten
|
||||||
|
ConflictError: Bei Zeitkonflikten mit anderen Jobs
|
||||||
|
HardwareError: Bei Tapo-Kommunikationsfehlern
|
||||||
|
|
||||||
|
Example:
|
||||||
|
>>> result = schedule_print_job(
|
||||||
|
... drucker_id=1,
|
||||||
|
... start_time=datetime(2025, 1, 15, 14, 0),
|
||||||
|
... duration_minutes=120,
|
||||||
|
... user_id=42
|
||||||
|
... )
|
||||||
|
>>> print(result['job_id'])
|
||||||
|
157
|
||||||
|
"""
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚨 ERROR-HANDLING-STANDARD
|
||||||
|
|
||||||
|
### EXCEPTION-HIERARCHY
|
||||||
|
```python
|
||||||
|
# Projekt-spezifische Exception-Klassen
|
||||||
|
class MYPBaseException(Exception):
|
||||||
|
"""Basis-Exception für MYP-System."""
|
||||||
|
def __init__(self, message: str, error_code: str = None):
|
||||||
|
self.message = message
|
||||||
|
self.error_code = error_code
|
||||||
|
super().__init__(self.message)
|
||||||
|
|
||||||
|
class HardwareError(MYPBaseException):
|
||||||
|
"""Fehler bei Hardware-Kommunikation (Tapo, Drucker)."""
|
||||||
|
pass
|
||||||
|
|
||||||
|
class SchedulingConflictError(MYPBaseException):
|
||||||
|
"""Zeitkonflikt bei Job-Planung."""
|
||||||
|
pass
|
||||||
|
|
||||||
|
class ValidationError(MYPBaseException):
|
||||||
|
"""Eingabe-Validierungsfehler."""
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Global Error Handler
|
||||||
|
@app.errorhandler(Exception)
|
||||||
|
def handle_global_exception(error):
|
||||||
|
"""Globaler Exception-Handler mit Logging."""
|
||||||
|
logger.error(f"Unbehandelte Exception: {str(error)}", exc_info=True)
|
||||||
|
|
||||||
|
if isinstance(error, MYPBaseException):
|
||||||
|
return jsonify({
|
||||||
|
'error': error.message,
|
||||||
|
'error_code': error.error_code
|
||||||
|
}), 400
|
||||||
|
|
||||||
|
# Generischer Server-Fehler
|
||||||
|
return jsonify({
|
||||||
|
'error': 'Ein unerwarteter Fehler ist aufgetreten.',
|
||||||
|
'error_code': 'INTERNAL_ERROR'
|
||||||
|
}), 500
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔄 SELF-VERIFICATION-CHECKLIST
|
||||||
|
|
||||||
|
Nach jeder größeren Änderung ZWINGEND prüfen:
|
||||||
|
|
||||||
|
### ✅ FUNKTIONALE KORREKTHEIT
|
||||||
|
- [ ] Alle API-Endpunkte reagieren korrekt
|
||||||
|
- [ ] Datenbank-Operationen funktionieren
|
||||||
|
- [ ] Frontend lädt ohne JavaScript-Fehler
|
||||||
|
- [ ] Hardware-Integration (Tapo) erreichbar
|
||||||
|
|
||||||
|
### ✅ STRUKTURELLE INTEGRITÄT
|
||||||
|
- [ ] Imports funktionieren in allen Modulen
|
||||||
|
- [ ] Keine zirkulären Dependencies
|
||||||
|
- [ ] Database-Schema konsistent
|
||||||
|
- [ ] Session-Management intakt
|
||||||
|
|
||||||
|
### ✅ VOLLSTÄNDIGE DOKUMENTATION
|
||||||
|
- [ ] Deutsche Docstrings für neue Funktionen
|
||||||
|
- [ ] Inline-Kommentare für komplexe Logik
|
||||||
|
- [ ] API-Dokumentation aktualisiert
|
||||||
|
- [ ] Changelog-Einträge
|
||||||
|
|
||||||
|
### ✅ CASCADE-KONSISTENZ
|
||||||
|
- [ ] Alle abhängigen Module getestet
|
||||||
|
- [ ] Berechtigungen weiterhin gültig
|
||||||
|
- [ ] Logging funktioniert in allen Bereichen
|
||||||
|
- [ ] Error-Handling vollständig
|
||||||
|
|
||||||
|
## 🎯 ZUSÄTZLICHE REGELN
|
||||||
|
|
||||||
|
### GIT-WORKFLOW
|
||||||
|
- **Commit-Messages**: Englisch, aussagekräftig
|
||||||
|
- **Branch-Naming**: `feature/deutsche-beschreibung`, `bugfix/issue-nummer`
|
||||||
|
- **Pull-Requests**: Mit deutscher Beschreibung und Impact-Analyse
|
||||||
|
|
||||||
|
### CODE-REVIEW-KRITERIEN
|
||||||
|
- Deutsche Kommentare und Dokumentation
|
||||||
|
- Performance-Impact für Raspberry Pi
|
||||||
|
- Security-Implications
|
||||||
|
- Hardware-Integration-Auswirkungen
|
||||||
|
- Offline-Funktionalität erhalten
|
||||||
|
|
||||||
|
### EMERGENCY-PROCEDURES
|
||||||
|
```python
|
||||||
|
# Notfall-Shutdown-Prozedur
|
||||||
|
def emergency_shutdown():
|
||||||
|
"""Kontrolliertes System-Shutdown bei kritischen Fehlern."""
|
||||||
|
logger.critical("NOTFALL-SHUTDOWN initiiert")
|
||||||
|
|
||||||
|
# 1. Alle aktiven Jobs sicher beenden
|
||||||
|
active_jobs = Job.query.filter(Job.status == 'running').all()
|
||||||
|
for job in active_jobs:
|
||||||
|
job.force_complete_with_reason("Notfall-Shutdown")
|
||||||
|
|
||||||
|
# 2. Smart-Plugs ausschalten
|
||||||
|
tapo_controller.emergency_power_off_all()
|
||||||
|
|
||||||
|
# 3. Database-Backup erstellen
|
||||||
|
backup_manager.create_emergency_backup()
|
||||||
|
|
||||||
|
# 4. System-Status auf Wartung setzen
|
||||||
|
system_status.set_maintenance_mode(True)
|
||||||
|
|
||||||
|
logger.critical("NOTFALL-SHUTDOWN abgeschlossen")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🏆 QUALITÄTSZIELE
|
||||||
|
|
||||||
|
**Code-Qualität**: Produktionsreif, keine Experimente
|
||||||
|
**Performance**: Optimiert für Raspberry Pi 4
|
||||||
|
**Reliability**: 99.9% Uptime in Air-Gapped-Umgebung
|
||||||
|
**Security**: Keine Schwachstellen, umfassende Validierung
|
||||||
|
**Maintainability**: Selbstdokumentierend, modular aufgebaut
|
||||||
|
**User Experience**: Intuitive deutsche Benutzerführung
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Version**: 1.0.0
|
||||||
|
**Gültig für**: MYP Druckerverwaltungssystem v2.0+
|
||||||
|
**Letzte Aktualisierung**: $(date +%Y-%m-%d)
|
||||||
|
**Entwicklungsstandard**: IHK-Projektarbeit Mercedes-Benz
|
Binary file not shown.
126
backend/app.py
126
backend/app.py
@@ -10,7 +10,9 @@ import sys
|
|||||||
import logging
|
import logging
|
||||||
import atexit
|
import atexit
|
||||||
import signal
|
import signal
|
||||||
from datetime import datetime
|
import pickle
|
||||||
|
import hashlib
|
||||||
|
from datetime import datetime, timedelta
|
||||||
from flask import Flask, render_template, request, jsonify, redirect, url_for, session, abort
|
from flask import Flask, render_template, request, jsonify, redirect, url_for, session, abort
|
||||||
from flask_login import LoginManager, current_user, logout_user, login_required
|
from flask_login import LoginManager, current_user, logout_user, login_required
|
||||||
from flask_wtf import CSRFProtect
|
from flask_wtf import CSRFProtect
|
||||||
@@ -19,6 +21,97 @@ from sqlalchemy import event
|
|||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
|
# ===== SESSION-OPTIMIERUNG =====
|
||||||
|
class SessionManager:
|
||||||
|
"""Optimierter Session-Manager für große Session-Daten"""
|
||||||
|
|
||||||
|
def __init__(self, app=None):
|
||||||
|
self.app = app
|
||||||
|
self.session_storage_path = None
|
||||||
|
|
||||||
|
def init_app(self, app):
|
||||||
|
"""Initialisiert den Session-Manager für die Flask-App"""
|
||||||
|
self.app = app
|
||||||
|
self.session_storage_path = os.path.join(
|
||||||
|
app.instance_path, 'sessions'
|
||||||
|
)
|
||||||
|
os.makedirs(self.session_storage_path, exist_ok=True)
|
||||||
|
|
||||||
|
def store_large_session_data(self, key, data):
|
||||||
|
"""Speichert große Session-Daten im Dateisystem"""
|
||||||
|
if not self.session_storage_path:
|
||||||
|
return False
|
||||||
|
|
||||||
|
try:
|
||||||
|
session_id = session.get('session_id')
|
||||||
|
if not session_id:
|
||||||
|
session_id = hashlib.md5(
|
||||||
|
f"{request.remote_addr}_{datetime.now().isoformat()}".encode()
|
||||||
|
).hexdigest()
|
||||||
|
session['session_id'] = session_id
|
||||||
|
|
||||||
|
file_path = os.path.join(
|
||||||
|
self.session_storage_path,
|
||||||
|
f"{session_id}_{key}.pkl"
|
||||||
|
)
|
||||||
|
|
||||||
|
with open(file_path, 'wb') as f:
|
||||||
|
pickle.dump(data, f)
|
||||||
|
|
||||||
|
# Nur Referenz in Session speichern
|
||||||
|
session[f"{key}_ref"] = True
|
||||||
|
|
||||||
|
return True
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Fehler beim Speichern der Session-Daten: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def load_large_session_data(self, key):
|
||||||
|
"""Lädt große Session-Daten aus dem Dateisystem"""
|
||||||
|
if not self.session_storage_path:
|
||||||
|
return None
|
||||||
|
|
||||||
|
try:
|
||||||
|
session_id = session.get('session_id')
|
||||||
|
if not session_id or not session.get(f"{key}_ref"):
|
||||||
|
return None
|
||||||
|
|
||||||
|
file_path = os.path.join(
|
||||||
|
self.session_storage_path,
|
||||||
|
f"{session_id}_{key}.pkl"
|
||||||
|
)
|
||||||
|
|
||||||
|
if not os.path.exists(file_path):
|
||||||
|
return None
|
||||||
|
|
||||||
|
with open(file_path, 'rb') as f:
|
||||||
|
return pickle.load(f)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Fehler beim Laden der Session-Daten: {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def cleanup_expired_sessions(self):
|
||||||
|
"""Bereinigt abgelaufene Session-Dateien"""
|
||||||
|
if not self.session_storage_path:
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
current_time = datetime.now()
|
||||||
|
for filename in os.listdir(self.session_storage_path):
|
||||||
|
file_path = os.path.join(self.session_storage_path, filename)
|
||||||
|
file_time = datetime.fromtimestamp(os.path.getmtime(file_path))
|
||||||
|
|
||||||
|
# Lösche Dateien älter als 24 Stunden
|
||||||
|
if current_time - file_time > timedelta(hours=24):
|
||||||
|
os.remove(file_path)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Fehler bei Session-Cleanup: {e}")
|
||||||
|
|
||||||
|
# Globaler Session-Manager
|
||||||
|
session_manager = SessionManager()
|
||||||
|
|
||||||
# ===== PRODUCTION-KONFIGURATION =====
|
# ===== PRODUCTION-KONFIGURATION =====
|
||||||
class ProductionConfig:
|
class ProductionConfig:
|
||||||
"""Production-Konfiguration für Mercedes-Benz TBA Marienfelde Air-Gapped Environment
|
"""Production-Konfiguration für Mercedes-Benz TBA Marienfelde Air-Gapped Environment
|
||||||
@@ -523,6 +616,9 @@ login_manager.init_app(app)
|
|||||||
login_manager.login_view = "auth.login"
|
login_manager.login_view = "auth.login"
|
||||||
login_manager.login_message = "Bitte melden Sie sich an, um auf diese Seite zuzugreifen."
|
login_manager.login_message = "Bitte melden Sie sich an, um auf diese Seite zuzugreifen."
|
||||||
|
|
||||||
|
# Session-Manager initialisieren
|
||||||
|
session_manager.init_app(app)
|
||||||
|
|
||||||
@login_manager.user_loader
|
@login_manager.user_loader
|
||||||
def load_user(user_id):
|
def load_user(user_id):
|
||||||
"""Lädt einen Benutzer für Flask-Login"""
|
"""Lädt einen Benutzer für Flask-Login"""
|
||||||
@@ -595,22 +691,32 @@ def log_response_info(response):
|
|||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
def check_session_activity():
|
def check_session_activity():
|
||||||
"""Prüft Session-Aktivität und meldet inaktive Benutzer ab"""
|
"""Prüft Session-Aktivität und meldet inaktive Benutzer ab mit optimiertem Cookie-Management"""
|
||||||
if current_user.is_authenticated:
|
if current_user.is_authenticated:
|
||||||
from utils.utilities_collection import SESSION_LIFETIME
|
from utils.utilities_collection import SESSION_LIFETIME
|
||||||
last_activity = session.get('last_activity')
|
now = datetime.now()
|
||||||
if last_activity:
|
|
||||||
|
# Reduzierte Session-Daten für Cookie-Größe
|
||||||
|
last_activity_str = session.get('last_activity')
|
||||||
|
if last_activity_str:
|
||||||
try:
|
try:
|
||||||
last_activity_time = datetime.fromisoformat(last_activity)
|
# Verarbeite sowohl alte ISO-Format als auch neue Zeit-Format
|
||||||
if (datetime.now() - last_activity_time).total_seconds() > SESSION_LIFETIME.total_seconds():
|
if 'T' in last_activity_str: # ISO-Format
|
||||||
|
last_activity_time = datetime.fromisoformat(last_activity_str)
|
||||||
|
else: # Nur Zeit-Format
|
||||||
|
today = now.date()
|
||||||
|
time_part = datetime.strptime(last_activity_str, '%H:%M').time()
|
||||||
|
last_activity_time = datetime.combine(today, time_part)
|
||||||
|
|
||||||
|
if (now - last_activity_time).total_seconds() > SESSION_LIFETIME.total_seconds():
|
||||||
app_logger.info(f"Session abgelaufen für Benutzer {current_user.id}")
|
app_logger.info(f"Session abgelaufen für Benutzer {current_user.id}")
|
||||||
logout_user()
|
logout_user()
|
||||||
return redirect(url_for('auth.login'))
|
return redirect(url_for('auth.login'))
|
||||||
except:
|
except Exception as e:
|
||||||
pass
|
app_logger.warning(f"Fehler beim Parsen der Session-Zeit: {e}")
|
||||||
|
|
||||||
# Aktivität aktualisieren
|
# Optimierte Session-Aktivität aktualisieren - nur Zeit statt volles ISO-Format
|
||||||
session['last_activity'] = datetime.now().isoformat()
|
session['last_activity'] = now.strftime('%H:%M')
|
||||||
session.permanent = True
|
session.permanent = True
|
||||||
|
|
||||||
# ===== HAUPTROUTEN =====
|
# ===== HAUPTROUTEN =====
|
||||||
|
139
backend/blueprints/api.py
Normal file
139
backend/blueprints/api.py
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
"""
|
||||||
|
API-Blueprint für das 3D-Druck-Management-System
|
||||||
|
|
||||||
|
Dieses Modul enthält allgemeine API-Endpunkte und WebSocket-Fallback-Funktionalität.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import logging
|
||||||
|
from datetime import datetime
|
||||||
|
from flask import Blueprint, jsonify, request, session
|
||||||
|
from flask_login import login_required, current_user
|
||||||
|
from models import get_db_session, User, Notification
|
||||||
|
from utils.logging_config import get_logger
|
||||||
|
|
||||||
|
# Blueprint erstellen
|
||||||
|
api_blueprint = Blueprint('api', __name__, url_prefix='/api')
|
||||||
|
|
||||||
|
# Logger initialisieren
|
||||||
|
api_logger = get_logger("api")
|
||||||
|
|
||||||
|
@api_blueprint.route('/ws-fallback', methods=['GET'])
|
||||||
|
@login_required
|
||||||
|
def ws_fallback():
|
||||||
|
"""WebSocket-Fallback für Browser ohne WebSocket-Unterstützung"""
|
||||||
|
try:
|
||||||
|
# Einfache Polling-Antwort für Clients ohne WebSocket
|
||||||
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'timestamp': datetime.now().isoformat(),
|
||||||
|
'user_id': current_user.id,
|
||||||
|
'message': 'WebSocket-Fallback aktiv'
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
api_logger.error(f"Fehler im WebSocket-Fallback: {str(e)}")
|
||||||
|
return jsonify({'error': 'WebSocket-Fallback-Fehler'}), 500
|
||||||
|
|
||||||
|
@api_blueprint.route('/notifications', methods=['GET'])
|
||||||
|
@login_required
|
||||||
|
def get_notifications():
|
||||||
|
"""Abrufen der Benutzer-Benachrichtigungen"""
|
||||||
|
try:
|
||||||
|
db_session = get_db_session()
|
||||||
|
|
||||||
|
# Benutzer-spezifische Benachrichtigungen
|
||||||
|
notifications = db_session.query(Notification).filter(
|
||||||
|
Notification.user_id == current_user.id,
|
||||||
|
Notification.is_read == False
|
||||||
|
).order_by(Notification.created_at.desc()).limit(20).all()
|
||||||
|
|
||||||
|
notification_list = []
|
||||||
|
for notification in notifications:
|
||||||
|
notification_list.append({
|
||||||
|
'id': notification.id,
|
||||||
|
'title': notification.title,
|
||||||
|
'message': notification.message,
|
||||||
|
'type': notification.type,
|
||||||
|
'created_at': notification.created_at.isoformat(),
|
||||||
|
'is_read': notification.is_read
|
||||||
|
})
|
||||||
|
|
||||||
|
db_session.close()
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'notifications': notification_list,
|
||||||
|
'count': len(notification_list)
|
||||||
|
})
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
api_logger.error(f"Fehler beim Abrufen der Benachrichtigungen: {str(e)}")
|
||||||
|
return jsonify({'error': 'Fehler beim Laden der Benachrichtigungen'}), 500
|
||||||
|
|
||||||
|
@api_blueprint.route('/notifications/<int:notification_id>/read', methods=['POST'])
|
||||||
|
@login_required
|
||||||
|
def mark_notification_read(notification_id):
|
||||||
|
"""Markiert eine Benachrichtigung als gelesen"""
|
||||||
|
try:
|
||||||
|
db_session = get_db_session()
|
||||||
|
|
||||||
|
notification = db_session.query(Notification).filter(
|
||||||
|
Notification.id == notification_id,
|
||||||
|
Notification.user_id == current_user.id
|
||||||
|
).first()
|
||||||
|
|
||||||
|
if not notification:
|
||||||
|
db_session.close()
|
||||||
|
return jsonify({'error': 'Benachrichtigung nicht gefunden'}), 404
|
||||||
|
|
||||||
|
notification.is_read = True
|
||||||
|
notification.read_at = datetime.now()
|
||||||
|
db_session.commit()
|
||||||
|
db_session.close()
|
||||||
|
|
||||||
|
api_logger.info(f"Benachrichtigung {notification_id} als gelesen markiert")
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'message': 'Benachrichtigung als gelesen markiert'
|
||||||
|
})
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
api_logger.error(f"Fehler beim Markieren der Benachrichtigung: {str(e)}")
|
||||||
|
return jsonify({'error': 'Fehler beim Markieren der Benachrichtigung'}), 500
|
||||||
|
|
||||||
|
@api_blueprint.route('/system/status', methods=['GET'])
|
||||||
|
@login_required
|
||||||
|
def system_status():
|
||||||
|
"""Gibt den System-Status zurück"""
|
||||||
|
try:
|
||||||
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'status': 'online',
|
||||||
|
'timestamp': datetime.now().isoformat(),
|
||||||
|
'user': {
|
||||||
|
'id': current_user.id,
|
||||||
|
'username': current_user.username,
|
||||||
|
'is_admin': current_user.is_admin
|
||||||
|
}
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
api_logger.error(f"Fehler beim Abrufen des System-Status: {str(e)}")
|
||||||
|
return jsonify({'error': 'System-Status nicht verfügbar'}), 500
|
||||||
|
|
||||||
|
@api_blueprint.route('/heartbeat', methods=['POST'])
|
||||||
|
@login_required
|
||||||
|
def heartbeat():
|
||||||
|
"""Heartbeat-Endpunkt für Frontend-Verbindungsmonitoring"""
|
||||||
|
try:
|
||||||
|
# Session-Aktivität aktualisieren
|
||||||
|
session['last_heartbeat'] = datetime.now().strftime('%H:%M:%S')
|
||||||
|
session.permanent = True
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
'success': True,
|
||||||
|
'timestamp': datetime.now().isoformat(),
|
||||||
|
'user_id': current_user.id
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
api_logger.error(f"Fehler im Heartbeat: {str(e)}")
|
||||||
|
return jsonify({'error': 'Heartbeat-Fehler'}), 500
|
@@ -92,8 +92,12 @@ def login():
|
|||||||
|
|
||||||
if user and user.check_password(password):
|
if user and user.check_password(password):
|
||||||
# Update last login timestamp
|
# Update last login timestamp
|
||||||
user.update_last_login()
|
try:
|
||||||
|
user.last_login = datetime.now()
|
||||||
db_session.commit()
|
db_session.commit()
|
||||||
|
except Exception as update_error:
|
||||||
|
auth_logger.warning(f"Fehler beim Update der Login-Zeit: {str(update_error)}")
|
||||||
|
# Fortsetzung ohne fatalen Fehler
|
||||||
|
|
||||||
login_user(user, remember=remember_me)
|
login_user(user, remember=remember_me)
|
||||||
auth_logger.info(f"Benutzer {username} hat sich erfolgreich angemeldet")
|
auth_logger.info(f"Benutzer {username} hat sich erfolgreich angemeldet")
|
||||||
@@ -170,8 +174,12 @@ def api_login():
|
|||||||
|
|
||||||
if user and user.check_password(password):
|
if user and user.check_password(password):
|
||||||
# Update last login timestamp
|
# Update last login timestamp
|
||||||
user.update_last_login()
|
try:
|
||||||
|
user.last_login = datetime.now()
|
||||||
db_session.commit()
|
db_session.commit()
|
||||||
|
except Exception as update_error:
|
||||||
|
auth_logger.warning(f"Fehler beim Update der Login-Zeit: {str(update_error)}")
|
||||||
|
# Fortsetzung ohne fatalen Fehler
|
||||||
|
|
||||||
login_user(user, remember=remember_me)
|
login_user(user, remember=remember_me)
|
||||||
auth_logger.info(f"API-Login erfolgreich für Benutzer {username}")
|
auth_logger.info(f"API-Login erfolgreich für Benutzer {username}")
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
0
backend/logs/admin/admin.log
Normal file
0
backend/logs/admin/admin.log
Normal file
0
backend/logs/admin_api/admin_api.log
Normal file
0
backend/logs/admin_api/admin_api.log
Normal file
0
backend/logs/api_simple/api_simple.log
Normal file
0
backend/logs/api_simple/api_simple.log
Normal file
691
backend/logs/app/app.log
Normal file
691
backend/logs/app/app.log
Normal file
@@ -0,0 +1,691 @@
|
|||||||
|
2025-06-12 07:24:57 - [app] app - [WARNING] WARNING - DatabaseCleanupManager nicht verfügbar - Fallback auf Legacy-Cleanup
|
||||||
|
2025-06-12 07:24:57 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db
|
||||||
|
2025-06-12 07:24:59 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development
|
||||||
|
2025-06-12 07:24:59 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False
|
||||||
|
2025-06-12 07:24:59 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration
|
||||||
|
2025-06-12 07:24:59 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration
|
||||||
|
2025-06-12 07:24:59 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert
|
||||||
|
2025-06-12 07:24:59 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing
|
||||||
|
2025-06-12 07:24:59 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True
|
||||||
|
2025-06-12 07:24:59 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True
|
||||||
|
2025-06-12 07:25:02 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [INFO] INFO - Locating template 'login.html':
|
||||||
|
1: trying loader of application 'app'
|
||||||
|
class: jinja2.loaders.FileSystemLoader
|
||||||
|
encoding: 'utf-8'
|
||||||
|
followlinks: False
|
||||||
|
searchpath:
|
||||||
|
- C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates
|
||||||
|
-> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\login.html')
|
||||||
|
2025-06-12 07:25:02 - [app] app - [INFO] INFO - Locating template 'base.html':
|
||||||
|
1: trying loader of application 'app'
|
||||||
|
class: jinja2.loaders.FileSystemLoader
|
||||||
|
encoding: 'utf-8'
|
||||||
|
followlinks: False
|
||||||
|
searchpath:
|
||||||
|
- C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates
|
||||||
|
-> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\base.html')
|
||||||
|
2025-06-12 07:25:02 - [app] app - [DEBUG] DEBUG - Response: 200
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.DatabaseError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/4xp6)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: <sqlite3.Connection object at 0x00000177EFA626B0> returned NULL without setting an exception
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:02 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/static/icons/icon-192.png
|
||||||
|
2025-06-12 07:25:02 - [app] app - [INFO] INFO - Locating template 'errors/404.html':
|
||||||
|
1: trying loader of application 'app'
|
||||||
|
class: jinja2.loaders.FileSystemLoader
|
||||||
|
encoding: 'utf-8'
|
||||||
|
followlinks: False
|
||||||
|
searchpath:
|
||||||
|
- C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates
|
||||||
|
-> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\errors\\404.html')
|
||||||
|
2025-06-12 07:25:06 - [app] app - [DEBUG] DEBUG - Request: POST /auth/login
|
||||||
|
2025-06-12 07:25:06 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:06 - [app] app - [DEBUG] DEBUG - Response: 500
|
||||||
|
2025-06-12 07:25:12 - [app] app - [DEBUG] DEBUG - Request: POST /auth/login
|
||||||
|
2025-06-12 07:25:12 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:12 - [app] app - [DEBUG] DEBUG - Response: 500
|
||||||
|
2025-06-12 07:25:14 - [app] app - [DEBUG] DEBUG - Request: GET /auth/login
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [DEBUG] DEBUG - Response: 200
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.DatabaseError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/4xp6)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: <sqlite3.Connection object at 0x00000177EFA626B0> returned NULL without setting an exception
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: <sqlite3.Connection object at 0x00000177EFA626B0> returned NULL without setting an exception
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.DatabaseError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/4xp6)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.DatabaseError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/4xp6)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: <sqlite3.Connection object at 0x00000177EFA626B0> returned NULL without setting an exception
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:14 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/static/icons/icon-192.png
|
||||||
|
2025-06-12 07:25:16 - [app] app - [DEBUG] DEBUG - Request: POST /auth/login
|
||||||
|
2025-06-12 07:25:16 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:16 - [app] app - [DEBUG] DEBUG - Response: 500
|
||||||
|
2025-06-12 07:25:24 - [app] app - [DEBUG] DEBUG - Request: GET /request
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [INFO] INFO - Locating template 'guest_request.html':
|
||||||
|
1: trying loader of application 'app'
|
||||||
|
class: jinja2.loaders.FileSystemLoader
|
||||||
|
encoding: 'utf-8'
|
||||||
|
followlinks: False
|
||||||
|
searchpath:
|
||||||
|
- C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates
|
||||||
|
-> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\guest_request.html')
|
||||||
|
2025-06-12 07:25:24 - [app] app - [DEBUG] DEBUG - Response: 200
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: <sqlite3.Connection object at 0x00000177EFA626B0> returned NULL without setting an exception
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:24 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/static/icons/icon-192.png
|
||||||
|
2025-06-12 07:25:28 - [app] app - [DEBUG] DEBUG - Request: POST /request
|
||||||
|
2025-06-12 07:25:28 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:28 - [app] app - [INFO] INFO - OTP generiert für Guest Request 3
|
||||||
|
2025-06-12 07:25:28 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users JOIN user_permissions ON users.id = user_permissions.user_id
|
||||||
|
WHERE user_permissions.can_approve_jobs = 1]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:28 - [app] app - [DEBUG] DEBUG - Response: 200
|
||||||
|
2025-06-12 07:25:33 - [app] app - [DEBUG] DEBUG - Request: GET /requests/overview
|
||||||
|
2025-06-12 07:25:33 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [INFO] INFO - Locating template 'guest_requests_overview.html':
|
||||||
|
1: trying loader of application 'app'
|
||||||
|
class: jinja2.loaders.FileSystemLoader
|
||||||
|
encoding: 'utf-8'
|
||||||
|
followlinks: False
|
||||||
|
searchpath:
|
||||||
|
- C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\templates
|
||||||
|
-> found ('C:\\Users\\TTOMCZA.EMEA\\Dev\\Projektarbeit-MYP\\backend\\templates\\guest_requests_overview.html')
|
||||||
|
2025-06-12 07:25:34 - [app] app - [DEBUG] DEBUG - Response: 200
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: <sqlite3.Connection object at 0x00000177EFA626B0> returned NULL without setting an exception
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:34 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/static/icons/icon-192.png
|
||||||
|
2025-06-12 07:25:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/ws-fallback
|
||||||
|
2025-06-12 07:25:36 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:36 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/ws-fallback
|
||||||
|
2025-06-12 07:25:36 - [app] app - [DEBUG] DEBUG - Response: 404
|
||||||
|
2025-06-12 07:25:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications
|
||||||
|
2025-06-12 07:25:36 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:36 - [app] app - [DEBUG] DEBUG - Response: 302
|
||||||
|
2025-06-12 07:25:36 - [app] app - [DEBUG] DEBUG - Request: GET /auth/login
|
||||||
|
2025-06-12 07:25:36 - [app] app - [ERROR] ERROR - Fehler beim Laden des Benutzers 1: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.id = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: (1, 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:36 - [app] app - [DEBUG] DEBUG - Response: 200
|
24
backend/logs/auth/auth.log
Normal file
24
backend/logs/auth/auth.log
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
2025-06-12 07:25:06 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)
|
||||||
|
2025-06-12 07:25:06 - [auth] auth - [ERROR] ERROR - Fehler bei der Anmeldung: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.username = ? OR users.email = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: ('admin@mercedes-benz.com', 'admin@mercedes-benz.com', 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:12 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)
|
||||||
|
2025-06-12 07:25:12 - [auth] auth - [ERROR] ERROR - Fehler bei der Anmeldung: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.username = ? OR users.email = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: ('admin@mercedes-benz.com', 'admin@mercedes-benz.com', 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
||||||
|
2025-06-12 07:25:16 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)
|
||||||
|
2025-06-12 07:25:16 - [auth] auth - [ERROR] ERROR - Fehler bei der Anmeldung: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users
|
||||||
|
WHERE users.username = ? OR users.email = ?
|
||||||
|
LIMIT ? OFFSET ?]
|
||||||
|
[parameters: ('admin@mercedes-benz.com', 'admin@mercedes-benz.com', 1, 0)]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
0
backend/logs/calendar/calendar.log
Normal file
0
backend/logs/calendar/calendar.log
Normal file
2
backend/logs/core_system/core_system.log
Normal file
2
backend/logs/core_system/core_system.log
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
2025-06-12 07:24:57 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert
|
||||||
|
2025-06-12 07:24:57 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion)
|
2
backend/logs/data_management/data_management.log
Normal file
2
backend/logs/data_management/data_management.log
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
2025-06-12 07:24:58 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert
|
||||||
|
2025-06-12 07:24:58 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
|
0
backend/logs/drag_drop/drag_drop.log
Normal file
0
backend/logs/drag_drop/drag_drop.log
Normal file
0
backend/logs/error_recovery/error_recovery.log
Normal file
0
backend/logs/error_recovery/error_recovery.log
Normal file
5
backend/logs/guest/guest.log
Normal file
5
backend/logs/guest/guest.log
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
2025-06-12 07:25:28 - [guest] guest - [ERROR] ERROR - Fehler beim Erstellen der Gastanfrage: (sqlite3.OperationalError) no such column: users.theme_preference
|
||||||
|
[SQL: SELECT users.id AS users_id, users.email AS users_email, users.username AS users_username, users.password_hash AS users_password_hash, users.name AS users_name, users.role AS users_role, users.active AS users_active, users.created_at AS users_created_at, users.last_login AS users_last_login, users.updated_at AS users_updated_at, users.settings AS users_settings, users.last_activity AS users_last_activity, users.department AS users_department, users.position AS users_position, users.phone AS users_phone, users.bio AS users_bio, users.theme_preference AS users_theme_preference, users.language_preference AS users_language_preference, users.email_notifications AS users_email_notifications, users.browser_notifications AS users_browser_notifications, users.dashboard_layout AS users_dashboard_layout, users.compact_mode AS users_compact_mode, users.show_completed_jobs AS users_show_completed_jobs, users.auto_refresh_interval AS users_auto_refresh_interval, users.auto_logout_timeout AS users_auto_logout_timeout
|
||||||
|
FROM users JOIN user_permissions ON users.id = user_permissions.user_id
|
||||||
|
WHERE user_permissions.can_approve_jobs = 1]
|
||||||
|
(Background on this error at: https://sqlalche.me/e/20/e3q8)
|
@@ -0,0 +1,4 @@
|
|||||||
|
2025-06-12 07:24:58 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar
|
||||||
|
2025-06-12 07:24:58 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert
|
||||||
|
2025-06-12 07:24:58 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert
|
||||||
|
2025-06-12 07:24:58 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion)
|
3
backend/logs/job_queue_system/job_queue_system.log
Normal file
3
backend/logs/job_queue_system/job_queue_system.log
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
2025-06-12 07:24:58 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert
|
||||||
|
2025-06-12 07:24:58 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion)
|
||||||
|
2025-06-12 07:25:38 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität)
|
0
backend/logs/jobs/jobs.log
Normal file
0
backend/logs/jobs/jobs.log
Normal file
0
backend/logs/kiosk/kiosk.log
Normal file
0
backend/logs/kiosk/kiosk.log
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
2025-06-12 07:24:59 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert
|
||||||
|
2025-06-12 07:24:59 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
|
0
backend/logs/printer_monitor/printer_monitor.log
Normal file
0
backend/logs/printer_monitor/printer_monitor.log
Normal file
0
backend/logs/printers/printers.log
Normal file
0
backend/logs/printers/printers.log
Normal file
1
backend/logs/scheduler/scheduler.log
Normal file
1
backend/logs/scheduler/scheduler.log
Normal file
@@ -0,0 +1 @@
|
|||||||
|
2025-06-12 07:24:58 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
3
backend/logs/security_suite/security_suite.log
Normal file
3
backend/logs/security_suite/security_suite.log
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
2025-06-12 07:24:58 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert
|
||||||
|
2025-06-12 07:24:58 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion)
|
||||||
|
2025-06-12 07:24:59 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert
|
0
backend/logs/sessions/sessions.log
Normal file
0
backend/logs/sessions/sessions.log
Normal file
0
backend/logs/shutdown/shutdown.log
Normal file
0
backend/logs/shutdown/shutdown.log
Normal file
9
backend/logs/startup/startup.log
Normal file
9
backend/logs/startup/startup.log
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - ==================================================
|
||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet...
|
||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
|
||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
|
||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP
|
||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-12T07:24:59.622331
|
||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
|
||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
|
||||||
|
2025-06-12 07:24:59 - [startup] startup - [INFO] INFO - ==================================================
|
0
backend/logs/tapo_control/tapo_control.log
Normal file
0
backend/logs/tapo_control/tapo_control.log
Normal file
1
backend/logs/tapo_controller/tapo_controller.log
Normal file
1
backend/logs/tapo_controller/tapo_controller.log
Normal file
@@ -0,0 +1 @@
|
|||||||
|
2025-06-12 07:24:58 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert
|
0
backend/logs/uploads/uploads.log
Normal file
0
backend/logs/uploads/uploads.log
Normal file
0
backend/logs/user/user.log
Normal file
0
backend/logs/user/user.log
Normal file
0
backend/logs/users/users.log
Normal file
0
backend/logs/users/users.log
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
2025-06-12 07:24:57 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert
|
||||||
|
2025-06-12 07:24:57 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion)
|
0
backend/logs/watchdog/watchdog.log
Normal file
0
backend/logs/watchdog/watchdog.log
Normal file
2
backend/logs/windows_fixes/windows_fixes.log
Normal file
2
backend/logs/windows_fixes/windows_fixes.log
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
2025-06-12 07:24:57 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
|
||||||
|
2025-06-12 07:24:57 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
|
BIN
backend/static/icons/icon-192.png
Normal file
BIN
backend/static/icons/icon-192.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
1
docs/ERROR_RECOVERY_LOG.md
Normal file
1
docs/ERROR_RECOVERY_LOG.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
Reference in New Issue
Block a user