diff --git a/Dashboard_V2/app.py b/Dashboard_V2/app.py index 338b08a..463dda6 100644 --- a/Dashboard_V2/app.py +++ b/Dashboard_V2/app.py @@ -432,6 +432,25 @@ def time_tracking(): return redirect(url_for('dashboard')) +@app.route('/admin/time_tracking', methods=['GET']) +def admin_time_tracking(): + if not is_admin(): + flash("Zugriff verweigert!", "red") + return redirect(url_for('dashboard')) + + db = get_db() + # Hole alle Zeiteinträge (JOIN mit users, damit wir den username sehen) + time_entries = db.execute(""" + SELECT t.id, t.user_id, t.activity, t.start_time, t.end_time, + u.username + FROM time_entries t + JOIN users u ON t.user_id = u.id + ORDER BY t.start_time DESC + """).fetchall() + + return render_template('admin_time_entries.html', time_entries=time_entries) + + # ------------------------------------------------------------ # DASHBOARD # ------------------------------------------------------------ diff --git a/Dashboard_V2/templates/admin.html b/Dashboard_V2/templates/admin.html index a0c0efb..d91e219 100644 --- a/Dashboard_V2/templates/admin.html +++ b/Dashboard_V2/templates/admin.html @@ -165,6 +165,11 @@ Admin-Bereich
Wähle oben in der Benutzerverwaltung „Lesezeichen“ für einen Nutzer aus, um konkrete Einträge zu sehen.
{% endif %} + + Zeiterfassung einsehen + + diff --git a/Dashboard_V2/templates/admin_time_entries.html b/Dashboard_V2/templates/admin_time_entries.html new file mode 100644 index 0000000..60e06bd --- /dev/null +++ b/Dashboard_V2/templates/admin_time_entries.html @@ -0,0 +1,64 @@ +{% extends "base.html" %} +{% block title %}Zeiterfassung aller Benutzer{% endblock title %} + +{% block content %} +| ID | +Benutzer | +Aktivität | +Start | +Ende | +Dauer | +
|---|---|---|---|---|---|
| {{ entry.id }} | +{{ entry.username }} | +{{ entry.activity }} | +{{ entry.start_time }} | ++ {% if entry.end_time %} + {{ entry.end_time }} + {% else %} + läuft … + {% endif %} + | ++ {% if entry.end_time %} + + {% set duration = (entry.end_time|datetime - entry.start_time|datetime).total_seconds() / 60 %} + {{ duration|round(2) }} Minuten + {% else %} + ... + {% endif %} + | +