From d2a6ebc1efa4b90afe6e1adf3150b41821bda652 Mon Sep 17 00:00:00 2001 From: Ivo Oskamp Date: Fri, 6 Feb 2026 14:06:55 +0100 Subject: [PATCH] Filter out archived jobs and inactive customers from job lists Added customer active status filtering to prevent jobs from deleted (inactive) customers from appearing in the UI alongside existing archived job filtering. Changes: - Daily Jobs: Filter jobs where customer is NULL or active=True - Run Checks: Filter jobs where customer is NULL or active=True - Jobs list: Filter jobs where customer is NULL or active=True This prevents showing jobs with "-" status from archived jobs or deleted customers on Daily Jobs and Run Checks pages. Co-Authored-By: Claude Sonnet 4.5 --- .../backupchecks/src/backend/app/main/routes_daily_jobs.py | 1 + .../backupchecks/src/backend/app/main/routes_jobs.py | 1 + .../backupchecks/src/backend/app/main/routes_run_checks.py | 7 ++++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/containers/backupchecks/src/backend/app/main/routes_daily_jobs.py b/containers/backupchecks/src/backend/app/main/routes_daily_jobs.py index 890bc29..121d1b8 100644 --- a/containers/backupchecks/src/backend/app/main/routes_daily_jobs.py +++ b/containers/backupchecks/src/backend/app/main/routes_daily_jobs.py @@ -77,6 +77,7 @@ def daily_jobs(): jobs = ( Job.query.join(Customer, isouter=True) .filter(Job.archived.is_(False)) + .filter(db.or_(Customer.id.is_(None), Customer.active.is_(True))) .order_by(Customer.name.asc().nullslast(), Job.backup_software.asc(), Job.backup_type.asc(), Job.job_name.asc()) .all() ) diff --git a/containers/backupchecks/src/backend/app/main/routes_jobs.py b/containers/backupchecks/src/backend/app/main/routes_jobs.py index 387d2a0..5bf5ebe 100644 --- a/containers/backupchecks/src/backend/app/main/routes_jobs.py +++ b/containers/backupchecks/src/backend/app/main/routes_jobs.py @@ -18,6 +18,7 @@ def jobs(): Job.query .filter(Job.archived.is_(False)) .outerjoin(Customer, Customer.id == Job.customer_id) + .filter(db.or_(Customer.id.is_(None), Customer.active.is_(True))) .add_columns( Job.id, Job.backup_software, diff --git a/containers/backupchecks/src/backend/app/main/routes_run_checks.py b/containers/backupchecks/src/backend/app/main/routes_run_checks.py index f29f85e..72ce89a 100644 --- a/containers/backupchecks/src/backend/app/main/routes_run_checks.py +++ b/containers/backupchecks/src/backend/app/main/routes_run_checks.py @@ -841,7 +841,12 @@ def run_checks_page(): ) last_reviewed_map = {int(jid): (dt if dt else None) for jid, dt in last_reviewed_rows} - jobs = Job.query.filter(Job.archived.is_(False)).all() + jobs = ( + Job.query.outerjoin(Customer) + .filter(Job.archived.is_(False)) + .filter(db.or_(Customer.id.is_(None), Customer.active.is_(True))) + .all() + ) today_local = _to_amsterdam_date(datetime.utcnow()) or datetime.utcnow().date() for job in jobs: