diff --git a/lib/galaxy/datatypes/interval.py b/lib/galaxy/datatypes/interval.py index 51d74a1c7b9..6ffe1be9c65 100644 --- a/lib/galaxy/datatypes/interval.py +++ b/lib/galaxy/datatypes/interval.py @@ -234,7 +234,7 @@ class Bed( Interval ): def missing_meta( self, dataset ): """Checks for empty meta values""" - return Tabular.missing_meta(self, dataset) + return Interval.missing_meta(self, dataset) def init_meta( self, dataset, copy_from=None ): Interval.init_meta( self, dataset, copy_from=copy_from ) diff --git a/lib/galaxy/datatypes/tabular.py b/lib/galaxy/datatypes/tabular.py index 8a9c6532c89..4735e71f505 100644 --- a/lib/galaxy/datatypes/tabular.py +++ b/lib/galaxy/datatypes/tabular.py @@ -134,8 +134,3 @@ class Tabular( data.Text ): m_peek = self.make_html_table( dataset.peek ) return m_peek - def before_edit( self, dataset ): - data.Text.before_edit( self, dataset ) - if self.missing_meta( dataset ): - self.set_meta( dataset ) - diff --git a/lib/galaxy/tools/dynamic_options.py b/lib/galaxy/tools/dynamic_options.py index 0f66fdd063a..21ef6d075c7 100644 --- a/lib/galaxy/tools/dynamic_options.py +++ b/lib/galaxy/tools/dynamic_options.py @@ -24,8 +24,6 @@ class DynamicOptions( object ): while '' indicates that it is not. Currently dynamically generated select lists do not work well with optional datasets. """ return None - # TODO: this can be eliminated after Dan's script is run. - #dataset.set_meta() return dataset def get_param_ref( self, trans, other_values ): if self.param_ref is None: return None diff --git a/lib/galaxy/tools/parameters.py b/lib/galaxy/tools/parameters.py index 48d264e18e9..b8564b23780 100644 --- a/lib/galaxy/tools/parameters.py +++ b/lib/galaxy/tools/parameters.py @@ -610,8 +610,6 @@ class ColumnListParameter( SelectToolParameter ): # while '' indicates that it is not. Currently column # parameters do not work well with optional datasets return column_list - # Just to be safe... (FIXME: Is this still neccesary?) - #dataset.set_meta() # Generate options if not dataset.metadata.columns: if self.accept_default: diff --git a/lib/galaxy/web/controllers/root.py b/lib/galaxy/web/controllers/root.py index a8771753f67..f99e2980a77 100644 --- a/lib/galaxy/web/controllers/root.py +++ b/lib/galaxy/web/controllers/root.py @@ -162,6 +162,7 @@ class Universe( BaseController ): @web.expose def edit(self, trans, id=None, hid=None, **kwd): """Returns data directly into the browser. Sets the mime-type according to the extension""" + if hid is not None: history = trans.get_history() # TODO: hid handling @@ -176,7 +177,7 @@ class Universe( BaseController ): p = util.Params(kwd, safe=False) if p.change: - """Ths user clicked the Save button on the 'Change data type' form""" + """The user clicked the Save button on the 'Change data type' form""" trans.app.datatypes_registry.change_datatype( data, p.datatype ) trans.app.model.flush() elif p.save: @@ -197,7 +198,17 @@ class Universe( BaseController ): data.datatype.after_edit( data ) trans.app.model.flush() - + return trans.fill_template( "edit_complete.tmpl" ) + elif p.detect: + """The user clicked the Auto-detect button on the 'Edit Attributes' form""" + for name, spec in data.datatype.metadata_spec.items(): + # We need to be careful about the attributes we are resetting + if name != 'name' and name != 'info' and name != 'dbkey': + if spec.get( 'default' ): + setattr( data.metadata,name,spec.unwrap( spec.get( 'default' ), spec )) + data.datatype.set_meta( data ) + data.datatype.after_edit( data ) + trans.app.model.flush() return trans.fill_template( "edit_complete.tmpl" ) elif p.convert_data: """The user clicked the Convert button on the 'Convert to new format' form""" diff --git a/templates/edit_data.tmpl b/templates/edit_data.tmpl index e5f8625da9f..14d42fbe9f7 100644 --- a/templates/edit_data.tmpl +++ b/templates/edit_data.tmpl @@ -62,6 +62,14 @@
#end for +