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 %} +
+

Zeiterfassung (alle Benutzer)

+ + {% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + {% for category, message in messages %} +
+ {{ message }} +
+ {% endfor %} + {% endif %} + {% endwith %} + +
+ + + + + + + + + + + + + {% for entry in time_entries %} + + + + + + + + + {% endfor %} + +
IDBenutzerAktivitätStartEndeDauer
{{ 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 %} +
+
+ + + Zurück zum Admin-Menü + +
+{% endblock content %}