From ae8bf21267d5a1e054e6ffc8d79ac987c2e3e016 Mon Sep 17 00:00:00 2001
From: Nico Vermaas <vermaas@astron.nl>
Date: Thu, 28 Oct 2021 10:57:20 +0200
Subject: [PATCH] added predecessor_status field to REST API added
 /atdb/tasks/?predecessor__status=defining filter options to REST API

---
 atdb/taskdatabase/models.py                         | 3 +++
 atdb/taskdatabase/serializers.py                    | 5 +++--
 atdb/taskdatabase/templates/taskdatabase/index.html | 2 +-
 atdb/taskdatabase/views.py                          | 1 +
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py
index 8e305b9c..db40f2d7 100644
--- a/atdb/taskdatabase/models.py
+++ b/atdb/taskdatabase/models.py
@@ -57,6 +57,9 @@ class Task(models.Model):
     def get_absolute_url(self):
         return reverse('task-detail-view-api', kwargs={'pk': self.pk})
 
+    @property
+    def predecessor_status(self):
+        return self.predecessor.status
 
 class LogEntry(models.Model):
     cpu_cycles = models.IntegerField(null=True,blank=True)
diff --git a/atdb/taskdatabase/serializers.py b/atdb/taskdatabase/serializers.py
index 538c1de5..5fc918aa 100644
--- a/atdb/taskdatabase/serializers.py
+++ b/atdb/taskdatabase/serializers.py
@@ -92,7 +92,8 @@ class TaskReadSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = Task
-        fields = ['id','task_type','creationTime','filter','predecessor','successors',
+        fields = ['id','task_type','creationTime','filter',
+                  'predecessor','predecessor_status','successors',
                   'project','sas_id','priority','purge_policy','resume',
                   'workflow',
                   'stage_request_id',
@@ -123,7 +124,7 @@ class TaskReadSerializerFast(serializers.ModelSerializer):
     """
     class Meta:
         model = Task
-        fields = ['id','task_type','creationTime','filter','predecessor',
+        fields = ['id','task_type','creationTime','filter','predecessor','predecessor_status',
                   'project','sas_id','priority','purge_policy','resume',
                   'workflow',
                   'stage_request_id',
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index effd31e3..5ba715b6 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -80,7 +80,7 @@
         {% include 'taskdatabase/pagination.html' %}
        </div>
     </div>
-    <p class="footer"> Version 1.0.0 (12 aug 2021 - 13:10)
+    <p class="footer"> Version 1.0.0 (28 oct 2021 - 11:00)
 
 </div>
 
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index 41532b78..977f0088 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -55,6 +55,7 @@ class TaskFilter(filters.FilterSet):
             'purge_policy': ['exact'],
             'priority': ['exact','lte','gte'],
             'resume': ['exact'],
+            'predecessor__status': ['exact', 'icontains', 'in', 'startswith'],
         }
 
 class TaskFilterQueryPage(filters.FilterSet):
-- 
GitLab