From 266bf1fd0032617a286c453aec45b07b50779980 Mon Sep 17 00:00:00 2001
From: Vermaas <vermaas@astron.nl>
Date: Mon, 2 Dec 2024 16:29:45 +0100
Subject: [PATCH] bugfix: validation page should ignore discarded

---
 atdb/taskdatabase/services/activities_handler.py | 2 +-
 atdb/taskdatabase/services/common.py             | 1 +
 atdb/taskdatabase/views.py                       | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/atdb/taskdatabase/services/activities_handler.py b/atdb/taskdatabase/services/activities_handler.py
index 90aa78a8..544a1a3d 100644
--- a/atdb/taskdatabase/services/activities_handler.py
+++ b/atdb/taskdatabase/services/activities_handler.py
@@ -1,6 +1,6 @@
 import logging;
 from django.conf import settings
-from django.db.models import Sum
+
 from .common import State, AggregationStrategy, VERIFIED_STATUSSES, PROCESSED_STATUSSES, INGEST_FRACTION_STATUSSES, \
     UPDATE_ARCHIVE_STATUSSES, ACTIVITY_RESET_STATUSSEN
 from taskdatabase.models import Task, Activity, Configuration
diff --git a/atdb/taskdatabase/services/common.py b/atdb/taskdatabase/services/common.py
index ad0013e8..a9b60ce7 100644
--- a/atdb/taskdatabase/services/common.py
+++ b/atdb/taskdatabase/services/common.py
@@ -27,6 +27,7 @@ class State(Enum):
     FINISHED = "finished"
     FINISHING = "finishing"
     SUSPENDED = "suspended"
+    DISCARD = "discard"
     DISCARDED = "discarded"
     FAILED = "failed"
     COLLECTING_DATA = "collecting_data"
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index 1d6c7b99..7fbabb34 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -688,7 +688,7 @@ def get_filtered_tasks(request, pre_filtered_tasks=None, distinct=None):
         # this assumes a similarity between tasks that share a field used as 'distinct'. (in practise that is sas_id)
         # this is only the case for tasks of the same 'task_type', and currently this is only used for 'regular' tasks.
         # (to turn that around, 'task_type=aggregation' should be omitted from this filter).
-        my_distinct_tasks = filtered_tasks.filter(task_type='regular').order_by(distinct,my_sort).distinct(distinct)
+        my_distinct_tasks = filtered_tasks.filter(task_type='regular').exclude(status='discarded').order_by(distinct,my_sort).distinct(distinct)
         return filtered_tasks.filter(id__in=my_distinct_tasks).order_by(my_sort)
     else:
         return filtered_tasks.order_by(my_sort)
-- 
GitLab