diff --git a/beat/web/plotters/views.py b/beat/web/plotters/views.py index 1785830938ffcf04d7e58ebd43647c250e4c5479..415e335a5ed4326568c08ac2e001c3dcd82d55f0 100644 --- a/beat/web/plotters/views.py +++ b/beat/web/plotters/views.py @@ -39,7 +39,7 @@ from django.http import HttpResponse, HttpResponseForbidden, HttpResponseBadRequ from django.conf import settings from django.shortcuts import get_object_or_404 -from ..experiments.models import Experiment, Result +from ..experiments.models import Experiment, Block, Result from ..dataformats.models import DataFormat from ..reports.models import Report @@ -204,23 +204,22 @@ def plot(request): for k, v in experiments.items(): if v['analyzer'].find('/') >= 0: (analyzer_author, analyzer_name, analyzer_version) = v['analyzer'].split('/') - - result = get_object_or_404( - Result, - name=v['output'], - block__algorithm__author__username=analyzer_author, - block__algorithm__name=analyzer_name, - block__algorithm__version=int(analyzer_version), - block__analyzer=True, - block__experiment=v['obj'], - ) + xp = v['obj'] + block = get_object_or_404(Block, + experiment=v['obj'], + algorithm__author__username=analyzer_author, + algorithm__name=analyzer_name, + algorithm__version=analyzer_version, + ) else: - result = get_object_or_404( - Result, - name=v['output'], - block__name=v['analyzer'], - block__analyzer=True, - block__experiment=v['obj'], + block = get_object_or_404(Block, + experiment=v['obj'], + name=v['analyzer'], + ) + + result = get_object_or_404(Result, + cache=block.outputs.get(), + name=v['output'], ) # now decide if the chart is compatible