Jul 15 - Update Dashboard - Add and switch Total This Week card
This commit is contained in:
@@ -34,6 +34,8 @@ def index():
|
|||||||
now = now_eastern()
|
now = now_eastern()
|
||||||
today_start = now.replace(hour=0, minute=0, second=0, microsecond=0)
|
today_start = now.replace(hour=0, minute=0, second=0, microsecond=0)
|
||||||
today_end = today_start + timedelta(days=1)
|
today_end = today_start + timedelta(days=1)
|
||||||
|
# Start of the current week (Monday 00:00) for the "Submitted This Week" card.
|
||||||
|
week_start = today_start - timedelta(days=today_start.weekday())
|
||||||
|
|
||||||
is_inspector = current_user.role == 'inspector'
|
is_inspector = current_user.role == 'inspector'
|
||||||
is_privileged = current_user.role in ['admin', 'director']
|
is_privileged = current_user.role in ['admin', 'director']
|
||||||
@@ -61,14 +63,16 @@ def index():
|
|||||||
else:
|
else:
|
||||||
base_q = base_q.filter(Inspection.facility_id.in_(customer_facility_ids))
|
base_q = base_q.filter(Inspection.facility_id.in_(customer_facility_ids))
|
||||||
|
|
||||||
today_inspections = base_q.filter(
|
completed_today = base_q.filter(
|
||||||
|
Inspection.status == 'completed',
|
||||||
Inspection.inspection_date >= today_start,
|
Inspection.inspection_date >= today_start,
|
||||||
Inspection.inspection_date < today_end,
|
Inspection.inspection_date < today_end,
|
||||||
).count()
|
).count()
|
||||||
|
|
||||||
completed_today = base_q.filter(
|
# Fully completed & submitted so far this week (Monday → now).
|
||||||
|
submitted_this_week = base_q.filter(
|
||||||
Inspection.status == 'completed',
|
Inspection.status == 'completed',
|
||||||
Inspection.inspection_date >= today_start,
|
Inspection.inspection_date >= week_start,
|
||||||
Inspection.inspection_date < today_end,
|
Inspection.inspection_date < today_end,
|
||||||
).count()
|
).count()
|
||||||
|
|
||||||
@@ -375,7 +379,7 @@ def index():
|
|||||||
'dashboard.html',
|
'dashboard.html',
|
||||||
sched_upcoming = sched_upcoming,
|
sched_upcoming = sched_upcoming,
|
||||||
sched_overdue_count = sched_overdue_count,
|
sched_overdue_count = sched_overdue_count,
|
||||||
today_inspections = today_inspections,
|
submitted_this_week = submitted_this_week,
|
||||||
completed_today = completed_today,
|
completed_today = completed_today,
|
||||||
open_issues = open_issues,
|
open_issues = open_issues,
|
||||||
severity_breakdown = severity_breakdown,
|
severity_breakdown = severity_breakdown,
|
||||||
@@ -398,6 +402,7 @@ def index():
|
|||||||
customer_facilities = customer_facilities,
|
customer_facilities = customer_facilities,
|
||||||
my_issues = my_issues,
|
my_issues = my_issues,
|
||||||
today_str = now.strftime('%Y-%m-%d'),
|
today_str = now.strftime('%Y-%m-%d'),
|
||||||
|
week_start_str = week_start.strftime('%Y-%m-%d'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -84,21 +84,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row g-3 mb-4">
|
<div class="row g-3 mb-4">
|
||||||
|
|
||||||
<div class="col-6 col-md">
|
|
||||||
<a href="{{ url_for('inspections.index', date_from=today_str, date_to=today_str) }}" class="text-decoration-none">
|
|
||||||
<div class="card text-white bg-primary h-100">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="d-flex justify-content-between align-items-start mb-1">
|
|
||||||
<span class="small text-white-50 fw-semibold">Today's Inspections</span>
|
|
||||||
<i class="bi bi-clipboard-data" style="font-size:1.4rem;opacity:.3;"></i>
|
|
||||||
</div>
|
|
||||||
<div class="fs-1 fw-bold lh-1">{{ today_inspections }}</div>
|
|
||||||
<div class="mt-2" style="font-size:.72rem;opacity:.7;">All inspections started today</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-6 col-md">
|
<div class="col-6 col-md">
|
||||||
<a href="{{ url_for('inspections.index', status='completed', date_from=today_str, date_to=today_str) }}" class="text-decoration-none">
|
<a href="{{ url_for('inspections.index', status='completed', date_from=today_str, date_to=today_str) }}" class="text-decoration-none">
|
||||||
<div class="card text-white bg-success h-100">
|
<div class="card text-white bg-success h-100">
|
||||||
@@ -114,6 +99,21 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6 col-md">
|
||||||
|
<a href="{{ url_for('inspections.index', status='completed', date_from=week_start_str, date_to=today_str) }}" class="text-decoration-none">
|
||||||
|
<div class="card text-white bg-primary h-100">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="d-flex justify-content-between align-items-start mb-1">
|
||||||
|
<span class="small text-white-50 fw-semibold">Submitted This Week</span>
|
||||||
|
<i class="bi bi-calendar-check" style="font-size:1.4rem;opacity:.3;"></i>
|
||||||
|
</div>
|
||||||
|
<div class="fs-1 fw-bold lh-1">{{ submitted_this_week }}</div>
|
||||||
|
<div class="mt-2" style="font-size:.72rem;opacity:.7;">Fully completed & submitted this week</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% if current_user.role != 'customer' %}
|
{% if current_user.role != 'customer' %}
|
||||||
<div class="col-6 col-md">
|
<div class="col-6 col-md">
|
||||||
<a href="{{ url_for('inspections.index', status='in_progress') }}" class="text-decoration-none">
|
<a href="{{ url_for('inspections.index', status='in_progress') }}" class="text-decoration-none">
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user