diff --git a/accounts/templates/accounts/account_detail.html b/accounts/templates/accounts/account_detail.html
index 025a013..cb7381d 100644
--- a/accounts/templates/accounts/account_detail.html
+++ b/accounts/templates/accounts/account_detail.html
@@ -1,12 +1,15 @@
{% extends 'application.html' %}
+{% load timedelta_filter %}
{% block content %}
-
User
-
- {{ user.first_name }} {{ user.last_name }}
- {{ user.email }}
-
- Update
-
-
+
+ {{ user.first_name }} {{ user.last_name }}
+ {{ user.email }}
+ {% if periods %}
+ Total clocked hours: {{ periods.total|timedelta_format }}
+ {% endif %}
+
+ Update
+
+
{% endblock %}
diff --git a/accounts/templates/accounts/account_list.html b/accounts/templates/accounts/account_list.html
index 31fe62d..5bbc6f9 100644
--- a/accounts/templates/accounts/account_list.html
+++ b/accounts/templates/accounts/account_list.html
@@ -1,15 +1,24 @@
{% extends 'application.html' %}
{% block content %}
-Users
-
+
+ Users
+
+ | Username |
+ Name |
+ Role |
+
{% for user in user_list %}
| {{ user.username }} |
- {{user.first_name}} {{user.last_name}} |
- Update |
+ {{user.first_name}} {{user.last_name}} |
+ {% if user.student %}
+ Student |
+ {% elif user.instructor %}
+ Instructor |
+ {% endif %}
{% empty %}
| No users yet. |
diff --git a/accounts/views.py b/accounts/views.py
index 9b4aa25..b028a6e 100644
--- a/accounts/views.py
+++ b/accounts/views.py
@@ -1,5 +1,6 @@
import pytz
from django.shortcuts import render, reverse, redirect
+from django.db.models import Avg, Count, Min, Sum
from django.urls import reverse_lazy
from django.views.generic.edit import FormView, CreateView, UpdateView, DeleteView
from django.views.generic.detail import DetailView
@@ -8,6 +9,7 @@ from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User
from django.contrib.auth.forms import PasswordChangeForm
+from attendance.models import Period
def set_timezone(request):
if request.method == 'POST':
@@ -29,6 +31,14 @@ class AccountDetailView(LoginRequiredMixin, DetailView):
model = User
template_name = 'accounts/account_detail.html'
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ if hasattr(context['object'], 'student'):
+ context['periods'] = Period.objects.filter(
+ student = context['object'].student
+ ).aggregate(total=Sum('duration'))
+ return context
+
class AccountUpdateView(LoginRequiredMixin, UpdateView):
model = User
# form_class = PasswordChangeForm
diff --git a/attendance/templates/attendance/_student_code.html b/attendance/templates/attendance/_student_code.html
index 5d0259e..a6522a1 100644
--- a/attendance/templates/attendance/_student_code.html
+++ b/attendance/templates/attendance/_student_code.html
@@ -1,21 +1,17 @@
{% if user.student.code_set.last %}
-
-
- {% if clocked_in %}
- Clock out →
- {% else %}
- Clock in →
- {% endif %}
-
-
+
+ {% if clocked_in %}
+ Clock out →
+ {% else %}
+ Clock in →
+ {% endif %}
+
{% else %}
-
-
- {% if clocked_in %}
- Clock out →
- {% else %}
- Clock in →
- {% endif %}
-
-
+
+ {% if clocked_in %}
+ Clock out →
+ {% else %}
+ Clock in →
+ {% endif %}
+
{% endif %}
diff --git a/attendance/templates/attendance/attendance_overview_instructor.html b/attendance/templates/attendance/attendance_overview_instructor.html
index d3cb5e6..a6b266a 100644
--- a/attendance/templates/attendance/attendance_overview_instructor.html
+++ b/attendance/templates/attendance/attendance_overview_instructor.html
@@ -2,15 +2,10 @@