From 1ab5a2a359caeacc2993dce427d38e6388097ffb Mon Sep 17 00:00:00 2001
From: Vermaas <vermaas@astron.nl>
Date: Mon, 27 Feb 2023 10:14:02 +0100
Subject: [PATCH] quality buttons are only available when all tasks of a sas_id
 are stored

---
 atdb/taskdatabase/models.py                          | 12 +++++++++---
 atdb/taskdatabase/templates/taskdatabase/index.html  |  2 +-
 .../taskdatabase/validation/validation_buttons.html  |  6 +++---
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py
index 18323dc5..deed3c94 100644
--- a/atdb/taskdatabase/models.py
+++ b/atdb/taskdatabase/models.py
@@ -10,6 +10,7 @@ logger = logging.getLogger(__name__)
 
 # constants
 datetime_format_string = '%Y-%m-%dT%H:%M:%SZ'
+verified_statusses = ['stored','validated','scrubbed','archived','finished']
 
 class Workflow(models.Model):
     description = models.CharField(max_length=500, blank=True, null=True)
@@ -225,10 +226,15 @@ class Task(models.Model):
         except:
             return None
 
+
     @property
-    def sasid_has_same_status(self):
-        nr_of_statusses = Task.objects.filter(sas_id=self.sas_id).distinct("status").count()
-        return nr_of_statusses == 1
+    def sasid_is_verified(self):
+
+        for task in Task.objects.filter(sas_id=self.sas_id):
+           if task.status not in verified_statusses:
+               return False
+        return True
+
 
 class LogEntry(models.Model):
     cpu_cycles = models.IntegerField(null=True,blank=True)
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index 4522887d..eb4a14ef 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -34,7 +34,7 @@
         {% include 'taskdatabase/pagination.html' %}
        </div>
     </div>
-    <p class="footer"> Version 21 Februari 2023
+    <p class="footer"> Version 27 Februari 2023
 
 </div>
 
diff --git a/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html b/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html
index 42ba24d1..a5a9d1c7 100644
--- a/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html
+++ b/atdb/taskdatabase/templates/taskdatabase/validation/validation_buttons.html
@@ -1,12 +1,12 @@
 
- {% if task.sasid_has_same_status %}
+ {% if task.sasid_is_verified %}
     <a href="{% url 'task-validate-view' task.pk 'poor' 'validated' my_tasks.number %}" class="btn btn-danger btn-sm" role="button"><i class="fas fa-check"></i> P</a>
  {% endif %}
 
- {% if task.sasid_has_same_status %}
+ {% if task.sasid_is_verified %}
     <a href="{% url 'task-validate-view' task.pk 'moderate' 'validated' my_tasks.number %}" class="btn btn-warning btn-sm" role="button"><i class="fas fa-check"></i> M</a>
  {% endif %}
 
- {% if task.sasid_has_same_status %}
+ {% if task.sasid_is_verified %}
     <a href="{% url 'task-validate-view' task.pk 'good' 'validated' my_tasks.number %}" class="btn btn-success btn-sm" role="button"><i class="fas fa-check"></i> G</a>
  {% endif %}
-- 
GitLab