(ui) Add schedule overview for dashboard drill-down
Add a staff-only schedules page with filters for host, enabled state, and prune state, including next run and last scheduler state. Wire the dashboard Schedules metric to the new overview so all primary dashboard count cards have useful destinations. Refs #23
This commit is contained in:
@@ -203,6 +203,44 @@ def snapshots_list(request):
|
||||
return render(request, "pobsync_backend/snapshots_list.html", context)
|
||||
|
||||
|
||||
@staff_member_required
|
||||
def schedules_list(request):
|
||||
enabled = request.GET.get("enabled", "").strip()
|
||||
prune = request.GET.get("prune", "").strip()
|
||||
host = request.GET.get("host", "").strip()
|
||||
schedules = ScheduleConfig.objects.select_related("host").order_by("host__host")
|
||||
if enabled == "yes":
|
||||
schedules = schedules.filter(enabled=True)
|
||||
elif enabled == "no":
|
||||
schedules = schedules.filter(enabled=False)
|
||||
if prune == "yes":
|
||||
schedules = schedules.filter(prune=True)
|
||||
elif prune == "no":
|
||||
schedules = schedules.filter(prune=False)
|
||||
if host:
|
||||
schedules = schedules.filter(host__host=host)
|
||||
|
||||
schedule_rows = []
|
||||
for schedule in schedules[:200]:
|
||||
schedule_rows.append(
|
||||
{
|
||||
"schedule": schedule,
|
||||
"next_run_at": _next_run_for_schedule(schedule, schedule.host),
|
||||
}
|
||||
)
|
||||
|
||||
context = {
|
||||
"schedule_rows": schedule_rows,
|
||||
"total_count": schedules.count(),
|
||||
"hosts": HostConfig.objects.order_by("host"),
|
||||
"selected_enabled": enabled,
|
||||
"selected_prune": prune,
|
||||
"selected_host": host,
|
||||
"scheduler_timezone": timezone.get_current_timezone_name(),
|
||||
}
|
||||
return render(request, "pobsync_backend/schedules_list.html", context)
|
||||
|
||||
|
||||
@staff_member_required
|
||||
def purged_snapshots(request):
|
||||
host = request.GET.get("host", "").strip()
|
||||
|
||||
Reference in New Issue
Block a user