From 59672551b9c923e71f8d34eb04e6d01556d5abe4 Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Tue, 23 Oct 2012 13:38:34 -0400 Subject: [PATCH 1/4] Alllow non-admin users to see metadata revisions when viewing a repository changelog in the tool shed. --- templates/webapps/community/repository/view_changelog.mako | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/webapps/community/repository/view_changelog.mako b/templates/webapps/community/repository/view_changelog.mako index 0e82e42a777..d53117f843d 100644 --- a/templates/webapps/community/repository/view_changelog.mako +++ b/templates/webapps/community/repository/view_changelog.mako @@ -114,14 +114,14 @@ has_metadata_str = '
Repository metadata is associated with this change set.
' else: has_metadata_str = '' + display_date = changeset[ 'display_date' ] %> - <% display_date = changeset[ 'display_date' ] %> %if test_date != display_date: ${display_date} %endif - %if is_admin and has_metadata_str: + %if has_metadata_str:
${has_metadata_str}
From 1ab7d52ced42ea8b79798249fc5e8526b5c143f4 Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Tue, 23 Oct 2012 13:43:08 -0400 Subject: [PATCH 2/4] Fix for RepositoriesWithReviewsGrid columns. --- .../webapps/community/controllers/repository.py | 14 -------------- .../community/controllers/repository_review.py | 16 +++++++++++++--- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/lib/galaxy/webapps/community/controllers/repository.py b/lib/galaxy/webapps/community/controllers/repository.py index 227c77ebad2..54362512afa 100644 --- a/lib/galaxy/webapps/community/controllers/repository.py +++ b/lib/galaxy/webapps/community/controllers/repository.py @@ -120,20 +120,6 @@ class RepositoryGrid( grids.Grid ): elif len( select_field.options ) == 1: return select_field.options[ 0 ][ 0 ] return '' - class WithoutReviewsRevisionColumn( grids.GridColumn ): - def __init__( self, col_name ): - grids.GridColumn.__init__( self, col_name ) - def get_value( self, trans, grid, repository ): - # Restrict the options to revisions that have not yet been reviewed. - repository_metadata_revisions = get_repository_metadata_revisions_for_review( repository, reviewed=False ) - if repository_metadata_revisions: - rval = '' - for repository_metadata in repository_metadata_revisions: - rev, label, changeset_revision = get_rev_label_changeset_revision_from_repository_metadata( repository_metadata, repository=repository ) - rval += '%s
' % ( trans.security.encode_id( repository.id ), changeset_revision, label ) - return rval - return '' class TipRevisionColumn( grids.GridColumn ): def __init__( self, col_name ): grids.GridColumn.__init__( self, col_name ) diff --git a/lib/galaxy/webapps/community/controllers/repository_review.py b/lib/galaxy/webapps/community/controllers/repository_review.py index 7b68bbb1dfe..5baff4137aa 100644 --- a/lib/galaxy/webapps/community/controllers/repository_review.py +++ b/lib/galaxy/webapps/community/controllers/repository_review.py @@ -51,8 +51,6 @@ class ComponentGrid( grids.Grid ): class RepositoriesWithReviewsGrid( RepositoryGrid ): # This grid filters out repositories that have been marked as deprecated. class WithReviewsRevisionColumn( grids.GridColumn ): - def __init__( self, col_name ): - grids.GridColumn.__init__( self, col_name ) def get_value( self, trans, grid, repository ): # Restrict to revisions that have been reviewed. if repository.reviews: @@ -65,6 +63,18 @@ class RepositoriesWithReviewsGrid( RepositoryGrid ): rval += '?id=%s&changeset_revision=%s">%s
' % ( trans.security.encode_id( repository.id ), changeset_revision, label ) return rval return '' + class WithoutReviewsRevisionColumn( grids.GridColumn ): + def get_value( self, trans, grid, repository ): + # Restrict the options to revisions that have not yet been reviewed. + repository_metadata_revisions = get_repository_metadata_revisions_for_review( repository, reviewed=False ) + if repository_metadata_revisions: + rval = '' + for repository_metadata in repository_metadata_revisions: + rev, label, changeset_revision = get_rev_label_changeset_revision_from_repository_metadata( repository_metadata, repository=repository ) + rval += '%s
' % ( trans.security.encode_id( repository.id ), changeset_revision, label ) + return rval + return '' class ReviewersColumn( grids.TextColumn ): def get_value( self, trans, grid, repository ): rval = '' @@ -84,7 +94,7 @@ class RepositoriesWithReviewsGrid( RepositoryGrid ): link=( lambda item: dict( operation="view_or_manage_repository", id=item.id ) ), attach_popup=True ), WithReviewsRevisionColumn( "Reviewed revisions" ), - RepositoryGrid.WithoutReviewsRevisionColumn( "Revisions for review" ), + WithoutReviewsRevisionColumn( "Revisions for review" ), RepositoryGrid.UserColumn( "Owner", attach_popup=False ), ReviewersColumn( "Reviewers", attach_popup=False ) ] From 17ea1182f10f1c9c290d54b435ced5b4938c6691 Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Tue, 23 Oct 2012 14:38:38 -0400 Subject: [PATCH 3/4] Fix for managing tool shed repository reviews. --- .../webapps/community/controllers/repository_review.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/webapps/community/controllers/repository_review.py b/lib/galaxy/webapps/community/controllers/repository_review.py index 5baff4137aa..479559595fb 100644 --- a/lib/galaxy/webapps/community/controllers/repository_review.py +++ b/lib/galaxy/webapps/community/controllers/repository_review.py @@ -654,7 +654,7 @@ class RepositoryReviewController( BaseUIController, ItemRatings ): repo_dir = repository.repo_path repo = hg.repository( get_configured_ui(), repo_dir ) metadata_revision_hashes = [ metadata_revision.changeset_revision for metadata_revision in repository.metadata_revisions ] - reviewed_revision_hashes = [ reviewed_revisions.changeset_revision for reviewed_revisions in repository.reviewed_revisions ] + reviewed_revision_hashes = [ review.changeset_revision for review in repository.reviews ] reviews_dict = odict() for changeset in get_reversed_changelog_changesets( repo ): ctx = repo.changectx( changeset ) @@ -667,7 +667,10 @@ class RepositoryReviewController( BaseUIController, ItemRatings ): # Determine if the current user can add a review to this revision. can_add_review = trans.user not in [ repository_review.user for repository_review in repository_reviews ] repository_metadata = get_repository_metadata_by_changeset_revision( trans, repository_id, changeset_revision ) - repository_metadata_reviews = util.listify( repository_metadata.reviews ) + if repository_metadata: + repository_metadata_reviews = util.listify( repository_metadata.reviews ) + else: + repository_metadata_reviews = [] else: repository_reviews = [] repository_metadata_reviews = [] From 3cff9b442dbe16a0b52a7739d64a97836282385e Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Tue, 23 Oct 2012 14:59:31 -0400 Subject: [PATCH 4/4] Add help text to the tool shed repository upload form to advertise John Chilton's recent enhancement allowing for mercurial repository urls staring with hg:// or hgs://. --- lib/galaxy/webapps/community/controllers/upload.py | 11 +++++------ templates/webapps/community/repository/upload.mako | 5 ++++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/galaxy/webapps/community/controllers/upload.py b/lib/galaxy/webapps/community/controllers/upload.py index ab476a963da..6aa8da71c52 100644 --- a/lib/galaxy/webapps/community/controllers/upload.py +++ b/lib/galaxy/webapps/community/controllers/upload.py @@ -48,13 +48,12 @@ class UploadController( BaseUIController ): message = 'No files were entered on the upload form.' status = 'error' uploaded_file = None - elif url and url.startswith("hg"): - # Use mercurial clone to fetch repository, contents will then - # be copied over. + elif url and url.startswith( 'hg' ): + # Use mercurial clone to fetch repository, contents will then be copied over. uploaded_directory = tempfile.mkdtemp() - repo_url = "http%s" % url[len("hg"):] - repo_url = repo_url.encode('ascii', 'replace') - commands.clone(get_configured_ui(), repo_url, uploaded_directory) + repo_url = 'http%s' % url[ len( 'hg' ): ] + repo_url = repo_url.encode( 'ascii', 'replace' ) + commands.clone( get_configured_ui(), repo_url, uploaded_directory ) elif url: valid_url = True try: diff --git a/templates/webapps/community/repository/upload.mako b/templates/webapps/community/repository/upload.mako index d0235bf95f6..a0206a4f697 100644 --- a/templates/webapps/community/repository/upload.mako +++ b/templates/webapps/community/repository/upload.mako @@ -85,7 +85,10 @@
- Enter a URL to upload your files via http. + Enter a URL to upload your files via http. URLs that point to mercurial repositories (URLs that start with hg:// or hgs://) + are allowed. This mechanism results in the tip revision of an external mercurial repository being added to the tool shed + repository as a single new changeset. The revision history of the originating external mercurial repository is not uploaded + to the tool shed repository.