From 8de723328c88a386c0894ee3ad7cf7e3ba92932c Mon Sep 17 00:00:00 2001 From: Nathan Chapman Date: Wed, 28 Jul 2021 21:03:35 -0600 Subject: [PATCH] Add basic pie charts for todos --- board/templates/board/employee_list.html | 22 ++++++++++++---------- board/views.py | 11 +++++++++-- onboard/settings.py | 1 + static/styles/main.css | 12 ++++++++++-- 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/board/templates/board/employee_list.html b/board/templates/board/employee_list.html index 3513193..59a5402 100644 --- a/board/templates/board/employee_list.html +++ b/board/templates/board/employee_list.html @@ -6,16 +6,18 @@

Add employee from email or Add employee from scratch

{% for employee in employee_list %} -

- {{employee.full_name}}
- Hire date: {{employee.hire_date|date:"SHORT_DATE_FORMAT"}}
- Department: {{employee.department}} -

-
- - - - +
+
+ + + + +
+

+ {{employee.full_name}}
+ Hire date: {{employee.hire_date|date:"SHORT_DATE_FORMAT"}}
+ Department: {{employee.department}} +

{% endfor %}
diff --git a/board/views.py b/board/views.py index dc4ccce..abc8202 100644 --- a/board/views.py +++ b/board/views.py @@ -5,7 +5,11 @@ from django.views.generic.edit import FormView, CreateView, UpdateView, DeleteVi from django.views.generic.detail import DetailView from django.views.generic.list import ListView from django.contrib.auth.mixins import LoginRequiredMixin -from django.db.models import Q + + +from django.db.models import (Exists, OuterRef, + Prefetch, Subquery, Count, Sum, F, Q, Value) +from django.db.models.functions import Length, Upper from .models import Employee, LogEntry, Todo, Event from .forms import ( @@ -32,7 +36,10 @@ class SearchResultsView(ListView): # Employees class EmployeeListView(LoginRequiredMixin, ListView): model = Employee - queryset = Employee.objects.filter(archived=False).order_by('hire_date') + queryset = Employee.objects.filter(archived=False).order_by('hire_date').annotate( + todos_total=Count('todo'), + todos_completed=Count('pk', filter=Q(todo__completed=True)), + ) class EmployeeArchivedView(LoginRequiredMixin, ListView): model = Employee diff --git a/onboard/settings.py b/onboard/settings.py index a0775c0..1fc67d7 100644 --- a/onboard/settings.py +++ b/onboard/settings.py @@ -53,6 +53,7 @@ MIDDLEWARE = [ 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'onboard.middleware.TimezoneMiddleware', ] ROOT_URLCONF = 'onboard.urls' diff --git a/static/styles/main.css b/static/styles/main.css index ba45dc2..65ffeee 100644 --- a/static/styles/main.css +++ b/static/styles/main.css @@ -314,6 +314,13 @@ hgroup { } +.employee__item { + display: grid; + grid-template-columns: 0.25fr 4fr; + column-gap: 1rem; + align-items: center; +} + .log_entry { display: grid; @@ -351,8 +358,9 @@ hgroup { .pie_chart { display: inline-block; - width: 1.125em; - height: 1.125em; + width: 2rem; + height: 2rem; + }