From 9033a1cc14608bd2cadf6a4f2860706a7ef0562a Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Tue, 1 Jun 2021 11:56:53 +0200
Subject: [PATCH] TMSS-761: added readonly property SAPs which returns a
 QuerySet containing all SAPs of the subtask's output dataproducts

---
 SAS/TMSS/backend/src/tmss/tmssapp/models/scheduling.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/models/scheduling.py b/SAS/TMSS/backend/src/tmss/tmssapp/models/scheduling.py
index 10cf2b6cdad..140283b661a 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/models/scheduling.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/models/scheduling.py
@@ -225,10 +225,17 @@ class Subtask(BasicCommon, ProjectPropertyMixin, TemplateSchemaMixin):
     @property
     def output_dataproducts(self) -> QuerySet:
         '''return the output dataproducts(s) as queryset (over which you can perform extended queries, or return via the serializers/viewsets)
-        If you want the result, add .all() like so: my_subtask.input_dataproducts.all()
+        If you want the result, add .all() like so: my_subtask.output_dataproducts.all()
         '''
         return Dataproduct.objects.filter(producer__subtask_id=self.id)
 
+    @property
+    def SAPs(self) -> QuerySet:
+        '''return the SAP's (SubArrayPointings) as queryset (over which you can perform extended queries, or return via the serializers/viewsets)
+        If you want the result, add .all() like so: my_subtask.SAPs.all()
+        '''
+        return SAP.objects.filter(dataproducts__producer__subtask_id=self.id).distinct()
+
     def get_transformed_input_dataproduct(self, output_dataproduct_id: int) -> 'Dataproduct':
         '''return the transformed input dataproduct for the given output_dataproduct_id.'''
         return self.input_dataproducts.get(consumers__output_id=output_dataproduct_id)
-- 
GitLab