diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py index dd22671b5098078159120b593c409c81045797f3..6e52292e741145bbc8f3b91a9456233866b15555 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/reports.py @@ -91,7 +91,27 @@ def _get_average_efficiency(cycle: models.Cycle): def _get_completion_level(cycle: models.Cycle): - return 0 + """ + Help function to retrieve the completion level info. + """ + result = {'target': '0%'} # TODO: Change it properly when it will be implemented. + + subtasks = [] + projects = models.Project.objects.filter(cycles=cycle) + for p in projects: + # Get Subtask observations related to the project + subtasks = models.Subtask.objects.filter( + task_blueprints__scheduling_unit_blueprint__draft__scheduling_set__project__pk=p.pk) \ + .filter(specifications_template__type='observation') + + total = 0 + total_succeeded = 0 + for s in subtasks: + total += s.duration.total_seconds() + total_succeeded += s.duration.total_seconds() if s.state == 'finished' else 0 + result['total'], result['succeeded'] = total, total_succeeded + + return result def _get_observation_hours_per_category(cycle: models.Cycle):