From 1957fd6fe009ab34e8b23071954f5b3c06625086 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Tue, 16 Jan 2024 15:59:51 +0100 Subject: [PATCH] TMSS-2886: added properties target_pointings target_pointings_astropy --- .../src/tmss/tmssapp/models/specification.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py index 2b2f973245f..db045de8f48 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py @@ -1052,6 +1052,19 @@ class SchedulingUnitCommonPropertiesMixin: '''get all observation tasks in this scheduling unit''' return self.tasks.filter(specifications_template__type__value=TaskType.Choices.OBSERVATION.value).all() + @cached_property + def target_pointings(self) -> ['Pointing']: + '''get all pointings of all target observations''' + from lofar.sas.tmss.services.scheduling.constraints import get_target_sap_pointings + target_observations = [t for t in self.observation_tasks.all() if t.is_target_observation] + target_pointings = sum([get_target_sap_pointings(t) for t in target_observations], []) + return target_pointings + + @cached_property + def target_pointings_astropy(self) -> str: + '''get all pointings of all target observations in astropy notation''' + return ', '.join(p.as_SkyCoord().to_string('hmsdms') if p.direction_type=='J2000' else p.target for p in self.target_pointings if p is not None) + @cached_property def specified_duration(self) -> datetime.timedelta: '''return the specified overall duration of all tasks of this scheduling unit -- GitLab