refactor: AIDA -> modulare Zeiterfassung

- Alle AIDA-Referenzen durch generische Begriffe ersetzt
  (aida -> attendance im Code, "Zeiterfassung" im UI)
- DB-Spalten: last_aida_status -> last_attendance_status
- Settings: aida_csv_path -> attendance_csv_path
- REST API fuer Zeiterfassung auf Port 8081:
  POST /api/attendance/{personal_nr} mit {"status": "anwesend"}
  GET  /api/attendance - alle Status abfragen
- Automatische DB-Migration fuer bestehende Installationen
- CSV bleibt als Option, API als Echtzeit-Alternative

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 10:28:45 +02:00
co-authored by Claude Opus 4.6
parent 12aa2d7ea1
commit 0d080ff885
8 changed files with 215 additions and 98 deletions
+3 -3
View File
@@ -15,7 +15,7 @@
<tr>
<th>Zeitpunkt</th>
<th>Benutzer</th>
<th>AIDA-Status</th>
<th>Zeiterfassung</th>
<th>Teams-Status</th>
<th>WLED-URL</th>
<th>Ergebnis</th>
@@ -27,8 +27,8 @@
<td class="text-nowrap">{{ log.timestamp }}</td>
<td>{{ log.user_name }}</td>
<td>
<span class="badge {% if log.aida_status == 'anwesend' %}bg-success{% elif log.aida_status == 'abwesend' %}bg-secondary{% elif log.aida_status == 'homeoffice' %}bg-warning text-dark{% else %}bg-light text-dark{% endif %}">
{{ log.aida_status or '-' }}
<span class="badge {% if log.attendance_status == 'anwesend' %}bg-success{% elif log.attendance_status == 'abwesend' %}bg-secondary{% elif log.attendance_status == 'homeoffice' %}bg-warning text-dark{% else %}bg-light text-dark{% endif %}">
{{ log.attendance_status or '-' }}
</span>
</td>
<td>