From 9274eac6e54d59aaaab0477fef418fd14713fa43 Mon Sep 17 00:00:00 2001 From: Mario Raciti <mario.raciti@inaf.it> Date: Tue, 27 Jul 2021 12:25:16 +0200 Subject: [PATCH] TMSS-770: Update get_saps for project reporting --- .../src/tmss/tmssapp/adapters/reports.py | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py index fa7a26739c0..f7843686994 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py @@ -405,5 +405,22 @@ def _get_saps(project_pk: int) -> []: """ Help function to retrieve SAPs. """ - # TODO: For each unique target (SAP name) get the sum of target observation durations from the tasks. - return [{'sap_name': 'placeholder', 'total_exposure': 0}, ] + result = [] + + # TODO: Check if this is the proper way. + + project_subs = models.SchedulingUnitBlueprint.objects.filter(draft__scheduling_set__project__pk=project_pk) + for sub in project_subs: + target_name, total_exposure = None, 0 + try: + target_name = get_target_observation_task_name_from_requirements_doc(sub) + except Exception as e: + pass + control_subtasks = models.Subtask.objects.filter(task_blueprints__scheduling_unit_blueprint=sub).filter(specifications_template__name='observation control') + for cs in control_subtasks: + if target_name in cs.SAPs.all(): + total_exposure += cs.duration.total_seconds() + if target_name: + result.append({'sap_name': target_name, 'total_exposure': total_exposure}) + + return result -- GitLab