From 5a575ea80f55b99b84a488c227cacd8183c1e615 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Thu, 19 Oct 2023 17:39:05 +0200 Subject: [PATCH] TMSS-2823: the problem with the specification from the test_bugfix_TMSS_2823_coarse_fine_grid is that the delta-time between target transits is larger than the transit_offset window width. Made a sanity check, and apply it both in the draft and blueprint to prevent this ill specification --- .../src/tmss/tmssapp/models/specification.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py index 56eb514b26f..6e8307da586 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/models/specification.py @@ -1162,13 +1162,14 @@ class SchedulingUnitCommonPropertiesMixin: for task in self.observation_tasks: if task.is_target_observation: pointings = get_transit_offset_pointings(task) - transits = [p.transit_lst for p in pointings] - earliest_transit = min(transits) - latest_transit = max(transits) - delta_transit = datetime.datetime.combine(datetime.date.today(), latest_transit) - datetime.datetime.combine(datetime.date.today(), earliest_transit) - delta_transit_seconds = delta_transit.total_seconds() - if delta_transit_seconds > transit_window_width_seconds: - raise RuleValidationException("time between latest and earliest transit for targets in task id=%s name='%s' su_id=%s is larger than the transit_offset window itself: delta_transit=%dsec > transit_window_width=%ssec" % (task.id, task.name, self.id, delta_transit_seconds, transit_window_width_seconds)) + transits = [p.transit_lst for p in pointings if p.direction_type=="J2000"] + if transits: + earliest_transit = min(transits) + latest_transit = max(transits) + delta_transit = datetime.datetime.combine(datetime.date.today(), latest_transit) - datetime.datetime.combine(datetime.date.today(), earliest_transit) + delta_transit_seconds = delta_transit.total_seconds() + if delta_transit_seconds > transit_window_width_seconds: + raise RuleValidationException("time between latest and earliest transit for targets in task id=%s name='%s' su_id=%s is larger than the transit_offset window itself: delta_transit=%dsec > transit_window_width=%ssec" % (task.id, task.name, self.id, delta_transit_seconds, transit_window_width_seconds)) class SchedulingUnitDraft(TemplateSchemaMixin, ProjectPropertyMixin, SchedulingUnitCommonPropertiesMixin, RefreshFromDbInvalidatesCachedPropertiesMixin, NamedCommon): -- GitLab