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

TMSS-610: Update data_ingested_per_site_and_type info

parent 17bfd4b8
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.
......@@ -156,26 +156,30 @@ def _get_data_ingested_per_site_and_type(request: Request, cycle: models.Cycle)
"""
result = []
# Get DataProducts related to the cycle with an ArchiveInfo
archive_info = models.DataproductArchiveInfo.objects.filter(dataproduct__producer__subtask__task_blueprints__draft__scheduling_unit_draft__scheduling_set__project__cycles=cycle.pk)
dataproducts = [ai.dataproduct for ai in archive_info]
# Filter DataProducts from Subtasks of type 'observation'
dp_from_observations = dataproducts.filter(producer__subtask__specifications_template__type='observation')
# Filter DataProducts from Subtasks of type 'pipeline'
dp_from_pipelines = dataproducts.filter(producer__subtask__specifications_template__type='pipeline')
# TODO: Filter categories basing on DataType, TaskType, DataFormat.
# Filter DataProducts of type 'visibilities' and 'time series' from observations and pipelines
dp_visibilities = dp_from_observations.filter(datatype='visibilities') | dp_from_pipelines.filter(datatype='visibilities')
dp_time_series = dp_from_observations.filter(datatype='time series') | dp_from_pipelines.filter(datatype='time series')
# TODO: Group dataproducts also per site.
# Iterate over categories
# categories = ('', '', '', '')
# for dt in datatypes:
# dataproducts_per_type = dataproducts.filter(datatype=dt.value)
# dataproducts_per_type_data = [serializers.DataproductSerializer(dp, context={'request': request}).data for dp in dataproducts_per_type]
# result.append({'type': dt.value, 'dataproducts': dataproducts_per_type_data})
# TODO: Currently there is no way to fitler per LTA site.
# # Get DataProducts related to the cycle with an ArchiveInfo
# archive_info = models.DataproductArchiveInfo.objects.filter(dataproduct__producer__subtask__task_blueprints__draft__scheduling_unit_draft__scheduling_set__project__cycles=cycle.pk)
# dataproducts = [ai.dataproduct for ai in archive_info]
# Get DataProducts related to the cycle
dataproducts = models.Dataproduct.objects.filter(producer__subtask__task_blueprints__draft__scheduling_unit_draft__scheduling_set__project__cycles=cycle.pk)
# Combine and filter DataPrducts accordingly
dps_interferometric_obs = dataproducts.filter(producer__subtask__specifications_template__type='observation', dataformat='MeasurementSet', datatype='visibilities')
dps_interferometric_obs_data = [serializers.DataproductSerializer(dp, context={'request': request}).data for dp in dps_interferometric_obs]
result.append({'category': 'Interferometric Observation', 'dataproducts': dps_interferometric_obs_data})
dps_beamformed_obs = dataproducts.filter(producer__subtask__specifications_template__type='observation', dataformat='Beamformed', datatype='time series')
dps_beamformed_obs_data = [serializers.DataproductSerializer(dp, context={'request': request}).data for dp in dps_beamformed_obs]
result.append({'category': 'Beamformed Observation', 'dataproducts': dps_beamformed_obs_data})
dp_averaging_pip = dataproducts.filter(producer__subtask__specifications_template__type='pipeline', dataformat='MeasurementSet', datatype='visibilities')
dp_averaging_pip_data = [serializers.DataproductSerializer(dp, context={'request': request}).data for dp in dp_averaging_pip]
result.append({'category': 'Averaging Pipeline', 'dataproducts': dp_averaging_pip_data})
dp_pulsar_pip = dataproducts.filter(producer__subtask__specifications_template__type='pipeline', dataformat__in=['pulp summary', 'pulp analysis'], datatype__in=['visibilities', 'pulsar profile'])
dp_pulsar_pip_data = [serializers.DataproductSerializer(dp, context={'request': request}).data for dp in dp_pulsar_pip]
result.append({'category': 'Pulsar Pipeline', 'dataproducts': dp_pulsar_pip_data})
return result
......
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