From cc0c717cffcb95f672120ee1ad7120fb0052ad02 Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Mon, 4 Mar 2013 14:29:23 -0500 Subject: [PATCH] Fix links in the tool shed's Galaxy utilities grids. --- .../tool_shed/controllers/repository.py | 38 ++++++++++++++++--- lib/tool_shed/grids/repository_grids.py | 8 ++-- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/lib/galaxy/webapps/tool_shed/controllers/repository.py b/lib/galaxy/webapps/tool_shed/controllers/repository.py index e8f1b91caff..655b6e77c12 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/repository.py +++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py @@ -82,10 +82,17 @@ class RepositoryController( BaseUIController, common_util.ItemRatings ): def browse_datatypes( self, trans, **kwd ): if 'operation' in kwd: operation = kwd[ 'operation' ].lower() + # The received id is a RepositoryMetadata id. + repository_metadata_id = kwd[ 'id' ] + repository_metadata = suc.get_repository_metadata_by_id( trans, repository_metadata_id ) + repository_id = trans.security.encode_id( repository_metadata.repository_id ) + changeset_revision = repository_metadata.changeset_revision + new_kwd = dict( id=repository_id, + changeset_revision=changeset_revision ) if operation == "view_or_manage_repository": return trans.response.send_redirect( web.url_for( controller='repository', action='view_or_manage_repository', - **kwd ) ) + **new_kwd ) ) return self.datatypes_grid( trans, **kwd ) @web.expose @@ -256,34 +263,55 @@ class RepositoryController( BaseUIController, common_util.ItemRatings ): def browse_repository_dependencies( self, trans, **kwd ): if 'operation' in kwd: operation = kwd[ 'operation' ].lower() + # The received id is a RepositoryMetadata id. + repository_metadata_id = kwd[ 'id' ] + repository_metadata = suc.get_repository_metadata_by_id( trans, repository_metadata_id ) + repository_id = trans.security.encode_id( repository_metadata.repository_id ) + changeset_revision = repository_metadata.changeset_revision + new_kwd = dict( id=repository_id, + changeset_revision=changeset_revision ) if operation == "browse_repository": return trans.response.send_redirect( web.url_for( controller='repository', action='browse_repository', - **kwd ) ) + **new_kwd ) ) if operation == "view_or_manage_repository": return trans.response.send_redirect( web.url_for( controller='repository', action='view_or_manage_repository', - **kwd ) ) + **new_kwd ) ) return self.repository_dependencies_grid( trans, **kwd ) @web.expose def browse_tools( self, trans, **kwd ): if 'operation' in kwd: operation = kwd[ 'operation' ].lower() + # The received id is a RepositoryMetadata id. + repository_metadata_id = kwd['id' ] + repository_metadata = suc.get_repository_metadata_by_id( trans, repository_metadata_id ) + repository_id = trans.security.encode_id( repository_metadata.repository_id ) + changeset_revision = repository_metadata.changeset_revision + new_kwd = dict( id=repository_id, + changeset_revision=changeset_revision ) if operation == "view_or_manage_repository": return trans.response.send_redirect( web.url_for( controller='repository', action='view_or_manage_repository', - **kwd ) ) + **new_kwd ) ) return self.tools_grid( trans, **kwd ) @web.expose def browse_tool_dependencies( self, trans, **kwd ): if 'operation' in kwd: operation = kwd[ 'operation' ].lower() + # The received id is a RepositoryMetadata id. + repository_metadata_id = kwd[ 'id' ] + repository_metadata = suc.get_repository_metadata_by_id( trans, repository_metadata_id ) + repository_id = trans.security.encode_id( repository_metadata.repository_id ) + changeset_revision = repository_metadata.changeset_revision + new_kwd = dict( id=repository_id, + changeset_revision=changeset_revision ) if operation == "view_or_manage_repository": return trans.response.send_redirect( web.url_for( controller='repository', action='view_or_manage_repository', - **kwd ) ) + **new_kwd ) ) return self.tool_dependencies_grid( trans, **kwd ) @web.expose diff --git a/lib/tool_shed/grids/repository_grids.py b/lib/tool_shed/grids/repository_grids.py index 9f664185aee..f7b64b39856 100644 --- a/lib/tool_shed/grids/repository_grids.py +++ b/lib/tool_shed/grids/repository_grids.py @@ -787,7 +787,7 @@ class RepositoryDependenciesGrid( RepositoryMetadataGrid ): columns = [ RepositoryMetadataGrid.RepositoryNameColumn( "Repository name", model_class=model.Repository, - link=( lambda item: dict( operation="view_or_manage_repository", id=item.repository.id, changeset_revision=item.changeset_revision ) ), + link=( lambda item: dict( operation="view_or_manage_repository", id=item.id ) ), attach_popup=False, key="Repository.name" ), RepositoryMetadataGrid.RepositoryOwnerColumn( "Owner", @@ -858,7 +858,7 @@ class ToolDependenciesGrid( RepositoryMetadataGrid ): columns = [ RepositoryMetadataGrid.RepositoryNameColumn( "Repository name", model_class=model.Repository, - link=( lambda item: dict( operation="view_or_manage_repository", id=item.repository.id, changeset_revision=item.changeset_revision ) ), + link=( lambda item: dict( operation="view_or_manage_repository", id=item.id ) ), attach_popup=False, key="Repository.name" ), RepositoryMetadataGrid.RepositoryOwnerColumn( "Owner", @@ -920,7 +920,7 @@ class ToolsGrid( RepositoryMetadataGrid ): columns = [ RepositoryMetadataGrid.RepositoryNameColumn( "Repository name", model_class=model.Repository, - link=( lambda item: dict( operation="view_or_manage_repository", id=item.repository.id, changeset_revision=item.changeset_revision ) ), + link=( lambda item: dict( operation="view_or_manage_repository", id=item.id ) ), attach_popup=False, key="Repository.name" ), RepositoryMetadataGrid.RepositoryOwnerColumn( "Owner", @@ -985,7 +985,7 @@ class DatatypesGrid( RepositoryMetadataGrid ): columns = [ RepositoryMetadataGrid.RepositoryNameColumn( "Repository name", model_class=model.Repository, - link=( lambda item: dict( operation="view_or_manage_repository", id=item.repository.id, changeset_revision=item.changeset_revision ) ), + link=( lambda item: dict( operation="view_or_manage_repository", id=item.id ) ), attach_popup=False, key="Repository.name" ), RepositoryMetadataGrid.RepositoryOwnerColumn( "Owner",