diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index c131a42f349..88af8170c98 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -1890,10 +1890,12 @@ class Tool( object, Dictifiable ): """ args = dict() for key, param in self.inputs.iteritems(): - if isinstance( param, HiddenToolParameter ): + # BaseURLToolParameter is now a subclass of HiddenToolParameter, so + # we must check if param is a BaseURLToolParameter first + if isinstance( param, BaseURLToolParameter ): + args[key] = param.get_initial_value( trans, None ) + elif isinstance( param, HiddenToolParameter ): args[key] = model.User.expand_user_properties( trans.user, param.value ) - elif isinstance( param, BaseURLToolParameter ): - args[key] = param.get_value( trans ) else: raise Exception( "Unexpected parameter type" ) return args diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 03cbcc31dcb..adbd85890ee 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -652,6 +652,7 @@ class HiddenToolParameter( ToolParameter ): def get_label( self ): return None + class ColorToolParameter( ToolParameter ): """ Parameter that stores a color. @@ -682,9 +683,23 @@ class BaseURLToolParameter( HiddenToolParameter ): super( BaseURLToolParameter, self ).__init__( tool, input_source ) self.value = input_source.get( 'value', '' ) + def get_initial_value( self, trans, context, history=None ): + return self._get_value() + + def get_html_field( self, trans=None, value=None, other_values={} ): + return form_builder.HiddenField( self.name, self._get_value() ) + def from_html( self, value=None, trans=None, context={} ): + return self._get_value() + + def _get_value( self ): return url_for( self.value, qualified=True ) + def to_dict( self, trans, view='collection', value_mapper=None, other_values={} ): + d = super( BaseURLToolParameter, self ).to_dict( trans ) + d[ 'value' ] = self._get_value() + return d + DEFAULT_VALUE_MAP = lambda x: x