in django_airavata/apps/api/output_views.py [0:0]
def get_output_views(request, experiment, application_interface=None):
output_views = {}
for output in experiment.experimentOutputs:
output_views[output.name] = []
output_view_provider_ids = _get_output_view_providers(
output, application_interface)
for output_view_provider_id in output_view_provider_ids:
output_view_provider = None
if output_view_provider_id in DEFAULT_VIEW_PROVIDERS:
output_view_provider = DEFAULT_VIEW_PROVIDERS[
output_view_provider_id]
elif output_view_provider_id in OUTPUT_VIEW_PROVIDERS:
output_view_provider = OUTPUT_VIEW_PROVIDERS[
output_view_provider_id]
else:
logger.warning("Unable to find output view provider with "
"name '{}'".format(output_view_provider_id))
if output_view_provider is not None:
view_config = {
'provider-id': output_view_provider_id,
'display-type': output_view_provider.display_type,
'name': getattr(output_view_provider, 'name',
output_view_provider_id),
}
if getattr(output_view_provider, 'immediate', False):
# Immediately call generate_data function
data = _generate_data(
request, output_view_provider, output, experiment)
view_config['data'] = data
else:
view_config['data'] = {}
output_views[output.name].append(view_config)
return output_views