From cc4911019077c5c6e1b4ec293670020f34aed596 Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 19 Apr 2016 14:00:50 -0400 Subject: [PATCH] Enhance to_json such that it can be safely called multiple times --- lib/galaxy/tools/parameters/basic.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 56f9a6d9893..c2883bf2cba 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -1673,13 +1673,16 @@ class BaseDataToolParameter( ToolParameter ): def to_json( self, value, app ): def single_to_json( value ): src = None - if isinstance( value, galaxy.model.DatasetCollectionElement ): + if isinstance( value, dict ) and 'src' in value and 'id' in value: + return value + elif isinstance( value, galaxy.model.DatasetCollectionElement ): src = 'dce' elif isinstance( value, app.model.HistoryDatasetCollectionAssociation ): src = 'hdca' - else: + elif hasattr( value, 'id' ): src = 'hda' - return { 'id' : app.security.encode_id( value.id ), 'src' : src } + if src is not None: + return { 'id' : app.security.encode_id( value.id ), 'src' : src } if value not in [ None, '', 'None' ]: if isinstance( value, list ) and len( value ) > 0: