Skip to content
Snippets Groups Projects
Commit 14cc4364 authored by Mario Raciti's avatar Mario Raciti
Browse files

TMSS-610: Add observation_hours_per_category info

parent 3b119ec1
No related branches found
No related tags found
3 merge requests!634WIP: COBALT commissioning delta,!492Resolve TMSS-610,!481Draft: SW-971 SW-973 SW-975: Various fixes to build LOFAR correctly.
...@@ -65,8 +65,34 @@ def _get_completion_level(cycle: models.Cycle): ...@@ -65,8 +65,34 @@ def _get_completion_level(cycle: models.Cycle):
def _get_observation_hours_per_category(cycle: models.Cycle): def _get_observation_hours_per_category(cycle: models.Cycle):
# TODO: Better define system unavailability and idle values.
result = {}
result['total_duration_A'], result['total_duration_B'], result['total_duration_failed'], result['total_duration_idle'] \
= timedelta(), timedelta(), timedelta(), timedelta()
# Get SUBs within prio A
subs_A = models.SchedulingUnitBlueprint.objects.filter(draft__scheduling_set__project__cycles=cycle.pk).filter(priority_queue='A')
for sub in subs_A:
if sub.status == 'finished':
result['total_duration_A'] += sub.duration
if sub.status == 'cancelled':
result['total_duration_failed'] += sub.duration
result['total_duration_idle'] += sub.duration # TODO: Need to subtract other states.
# Get SUBs within prio B
subs_B = models.SchedulingUnitBlueprint.objects.filter(draft__scheduling_set__project__cycles=cycle.pk).filter(priority_queue='B')
for sub in subs_B:
if sub.status == 'finished':
result['total_duration_B'] += sub.duration
if sub.status == 'cancelled':
result['total_duration_failed'] += sub.duration
result['total_duration_idle'] += sub.duration # TODO: Need to subtract other states.
result['total_duration_A'] = result['total_duration_A'].total_seconds()
result['total_duration_B'] = result['total_duration_B'].total_seconds()
result['total_duration_failed'] = result['total_duration_failed'].total_seconds()
result['total_duration_idle'] = result['total_duration_idle'].total_seconds()
return 0 return result
def _get_weekly_efficiency(cycle: models.Cycle): def _get_weekly_efficiency(cycle: models.Cycle):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment