diff --git a/lib/galaxy/webapps/tool_shed/controllers/repository.py b/lib/galaxy/webapps/tool_shed/controllers/repository.py index 454bcffa7ef..88cd5bdc531 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/repository.py +++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py @@ -2432,6 +2432,7 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ): message='Select a repository to rate', status='error' ) ) repository = suc.get_repository_in_tool_shed( trans, id ) + changeset_revision = repository.tip( trans.app ) repo = hg.repository( suc.get_configured_ui(), repository.repo_path( trans.app ) ) if repository.user == trans.user: return trans.response.send_redirect( web.url_for( controller='repository', @@ -2447,12 +2448,14 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ): rra = self.get_user_item_rating( trans.sa_session, trans.user, repository, webapp_model=trans.model ) metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision( trans, id, - repository.tip( trans.app ), + changeset_revision, metadata_only=True ) repository_type_select_field = rt_util.build_repository_type_select_field( trans, repository=repository ) + revision_label = suc.get_revision_label( trans, repository, changeset_revision ) return trans.fill_template( '/webapps/tool_shed/repository/rate_repository.mako', repository=repository, metadata=metadata, + revision_label=revision_label, avg_rating=avg_rating, display_reviews=display_reviews, num_ratings=num_ratings, @@ -2862,13 +2865,10 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ): has_metadata = True else: has_metadata = False - t, tz = ctx.date() - date = datetime( *gmtime( float( t ) - tz )[:6] ) - display_date = date.strftime( "%Y-%m-%d" ) change_dict = { 'ctx' : ctx, 'rev' : str( ctx.rev() ), 'date' : date, - 'display_date' : display_date, + 'display_date' : suc.get_readable_ctx_date( ctx ), 'description' : ctx.description(), 'files' : ctx.files(), 'user' : ctx.user(), @@ -2923,16 +2923,18 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ): metadata = metadata_util.get_repository_metadata_by_repository_id_changeset_revision( trans, id, ctx_str, metadata_only=True ) # For rendering the prev button. if ctx_parent: + ctx_parent_date = suc.get_readable_ctx_date( ctx_parent ) ctx_parent_rev = ctx_parent.rev() if ctx_parent_rev < 0: prev = None else: - prev = "%s:%s" % ( ctx_parent_rev, ctx_parent ) + prev = "%s:%s (%s)" % ( ctx_parent_rev, ctx_parent, ctx_parent_date ) else: prev = None if ctx_child: + ctx_child_date = suc.get_readable_ctx_date( ctx_child ) ctx_child_rev = ctx_child.rev() - next = "%s:%s" % ( ctx_child_rev, ctx_child ) + next = "%s:%s (%s)" % ( ctx_child_rev, ctx_child, ctx_child_date ) else: next = None return trans.fill_template( '/webapps/tool_shed/repository/view_changeset.mako', diff --git a/lib/tool_shed/grids/admin_grids.py b/lib/tool_shed/grids/admin_grids.py index 8714e134187..967d9328afb 100644 --- a/lib/tool_shed/grids/admin_grids.py +++ b/lib/tool_shed/grids/admin_grids.py @@ -19,48 +19,72 @@ log = logging.getLogger( __name__ ) class UserGrid( grids.Grid ): - # TODO: move this to an admin_common controller since it is virtually the same in the galaxy webapp. + + class UserLoginColumn( grids.TextColumn ): + def get_value( self, trans, grid, user ): return user.email + + class UserNameColumn( grids.TextColumn ): + def get_value( self, trans, grid, user ): if user.username: return user.username return 'not set' + + class GroupsColumn( grids.GridColumn ): + def get_value( self, trans, grid, user ): if user.groups: return len( user.groups ) return 0 + + class RolesColumn( grids.GridColumn ): + def get_value( self, trans, grid, user ): if user.roles: return len( user.roles ) return 0 + + class ExternalColumn( grids.GridColumn ): + def get_value( self, trans, grid, user ): if user.external: return 'yes' return 'no' + + class LastLoginColumn( grids.GridColumn ): + def get_value( self, trans, grid, user ): if user.galaxy_sessions: return self.format( user.galaxy_sessions[ 0 ].update_time ) return 'never' + + class StatusColumn( grids.GridColumn ): + def get_value( self, trans, grid, user ): if user.purged: return "purged" elif user.deleted: return "deleted" return "" + + class EmailColumn( grids.GridColumn ): + def filter( self, trans, user, query, column_filter ): if column_filter == 'All': return query return query.filter( and_( model.Tool.table.c.user_id == model.User.table.c.id, model.User.table.c.email == column_filter ) ) + title = "Users" model_class = model.User template='/admin/user/grid.mako' @@ -114,37 +138,56 @@ class UserGrid( grids.Grid ): num_rows_per_page = 50 preserve_state = False use_paging = True + def get_current_item( self, trans, **kwargs ): return trans.user + class RoleGrid( grids.Grid ): - # TODO: move this to an admin_common controller since it is virtually the same in the galaxy webapp. + + class NameColumn( grids.TextColumn ): + def get_value( self, trans, grid, role ): return role.name + + class DescriptionColumn( grids.TextColumn ): + def get_value( self, trans, grid, role ): if role.description: return role.description return '' + + class TypeColumn( grids.TextColumn ): def get_value( self, trans, grid, role ): return role.type + + class StatusColumn( grids.GridColumn ): + def get_value( self, trans, grid, role ): if role.deleted: return "deleted" return "" + + class GroupsColumn( grids.GridColumn ): + def get_value( self, trans, grid, role ): if role.groups: return len( role.groups ) return 0 + + class UsersColumn( grids.GridColumn ): + def get_value( self, trans, grid, role ): if role.users: return len( role.users ) return 0 + title = "Roles" model_class = model.Role template='/admin/dataset_security/role/grid.mako' @@ -205,29 +248,43 @@ class RoleGrid( grids.Grid ): num_rows_per_page = 50 preserve_state = False use_paging = True + def apply_query_filter( self, trans, query, **kwd ): return query.filter( model.Role.type != model.Role.types.PRIVATE ) + class GroupGrid( grids.Grid ): - # TODO: move this to an admin_common controller since it is virtually the same in the galaxy webapp. + + class NameColumn( grids.TextColumn ): + def get_value( self, trans, grid, group ): return group.name + + class StatusColumn( grids.GridColumn ): + def get_value( self, trans, grid, group ): if group.deleted: return "deleted" return "" + + class RolesColumn( grids.GridColumn ): + def get_value( self, trans, grid, group ): if group.roles: return len( group.roles ) return 0 + + class UsersColumn( grids.GridColumn ): + def get_value( self, trans, grid, group ): if group.members: return len( group.members ) return 0 + title = "Groups" model_class = model.Group template='/admin/dataset_security/group/grid.mako' @@ -279,6 +336,7 @@ class GroupGrid( grids.Grid ): preserve_state = False use_paging = True + class ManageCategoryGrid( CategoryGrid ): columns = [ col for col in CategoryGrid.columns ] # Override the NameColumn to include an Edit link @@ -292,12 +350,17 @@ class ManageCategoryGrid( CategoryGrid ): dict( controller='admin', action='manage_categories', operation='create' ) ) ] + class AdminRepositoryGrid( RepositoryGrid ): + + class DeletedColumn( grids.BooleanColumn ): + def get_value( self, trans, grid, repository ): if repository.deleted: return 'yes' return '' + columns = [ RepositoryGrid.NameColumn( "Name", key="name", link=( lambda item: dict( operation="view_or_manage_repository", id=item.id ) ), @@ -326,27 +389,43 @@ class AdminRepositoryGrid( RepositoryGrid ): async_compatible=False ) ) standard_filters = [] default_filter = {} + def build_initial_query( self, trans, **kwd ): return trans.sa_session.query( model.Repository ) \ .join( model.User.table ) + class RepositoryMetadataGrid( grids.Grid ): + + class IdColumn( grids.IntegerColumn ): + def get_value( self, trans, grid, repository_metadata ): return repository_metadata.id + + class NameColumn( grids.TextColumn ): + def get_value( self, trans, grid, repository_metadata ): return repository_metadata.repository.name + + class OwnerColumn( grids.TextColumn ): + def get_value( self, trans, grid, repository_metadata ): return repository_metadata.repository.user.username + class RevisionColumn( grids.TextColumn ): + def get_value( self, trans, grid, repository_metadata ): repository = repository_metadata.repository repo = hg.repository( suc.get_configured_ui(), repository.repo_path( trans.app ) ) ctx = suc.get_changectx_for_changeset( repo, repository_metadata.changeset_revision ) - return "%s:%s" % ( str( ctx.rev() ), repository_metadata.changeset_revision ) + return suc.get_revision_label( trans, repository, repository_metadata.changeset_revision ) + + class ToolsColumn( grids.TextColumn ): + def get_value( self, trans, grid, repository_metadata ): tools_str = '0' if repository_metadata: @@ -358,7 +437,10 @@ class RepositoryMetadataGrid( grids.Grid ): # tools_str += '%s %s
' % ( tool_metadata_dict[ 'id' ], tool_metadata_dict[ 'version' ] ) return '%d' % len( metadata[ 'tools' ] ) return tools_str + + class DatatypesColumn( grids.TextColumn ): + def get_value( self, trans, grid, repository_metadata ): datatypes_str = '0' if repository_metadata: @@ -370,7 +452,10 @@ class RepositoryMetadataGrid( grids.Grid ): # datatypes_str += '%s
' % datatype_metadata_dict[ 'extension' ] return '%d' % len( metadata[ 'datatypes' ] ) return datatypes_str + + class WorkflowsColumn( grids.TextColumn ): + def get_value( self, trans, grid, repository_metadata ): workflows_str = '0' if repository_metadata: @@ -387,21 +472,31 @@ class RepositoryMetadataGrid( grids.Grid ): # workflows_str += '%s
' % workflow_metadata_dict[ 'name' ] return '%d' % len( metadata[ 'workflows' ] ) return workflows_str + + class DeletedColumn( grids.BooleanColumn ): + def get_value( self, trans, grid, repository_metadata ): if repository_metadata.repository.deleted: return 'yes' return '' + + class DeprecatedColumn( grids.BooleanColumn ): + def get_value( self, trans, grid, repository_metadata ): if repository_metadata.repository.deprecated: return 'yes' return '' + + class MaliciousColumn( grids.BooleanColumn ): + def get_value( self, trans, grid, repository_metadata ): if repository_metadata.malicious: return 'yes' return '' + # Grid definition title = "Repository Metadata" model_class = model.RepositoryMetadata @@ -440,6 +535,7 @@ class RepositoryMetadataGrid( grids.Grid ): num_rows_per_page = 50 preserve_state = False use_paging = True + def build_initial_query( self, trans, **kwd ): return trans.sa_session.query( model.RepositoryMetadata ) \ .join( model.Repository.table ) diff --git a/lib/tool_shed/grids/repository_grids.py b/lib/tool_shed/grids/repository_grids.py index 4a054851f6c..dc848038cac 100644 --- a/lib/tool_shed/grids/repository_grids.py +++ b/lib/tool_shed/grids/repository_grids.py @@ -101,6 +101,10 @@ class RepositoryGrid( grids.Grid ): if len( select_field.options ) > 1: return select_field.get_html() elif len( select_field.options ) == 1: + option_items = select_field.options[ 0 ][ 0 ] + rev_label, rev_date = option_items.split( ' ' ) + rev_date = '%s' % rev_date + return '%s %s' % ( rev_label, rev_date ) return select_field.options[ 0 ][ 0 ] return '' @@ -1134,7 +1138,7 @@ class RepositoryMetadataGrid( grids.Grid ): repository = repository_metadata.repository changeset_revision = repository_metadata.changeset_revision changeset_revision_label = suc.get_revision_label( trans, repository, changeset_revision ) - return escape_html( changeset_revision_label ) + return changeset_revision_label class MaliciousColumn( grids.BooleanColumn ): diff --git a/lib/tool_shed/grids/repository_review_grids.py b/lib/tool_shed/grids/repository_review_grids.py index 99db9039b19..3a6428d3249 100644 --- a/lib/tool_shed/grids/repository_review_grids.py +++ b/lib/tool_shed/grids/repository_review_grids.py @@ -83,9 +83,10 @@ class RepositoriesWithReviewsGrid( RepositoryGrid ): if repository_metadata_revisions: rval = '' for repository_metadata in repository_metadata_revisions: - rev, label, changeset_revision = metadata_util.get_rev_label_changeset_revision_from_repository_metadata( trans, - repository_metadata, - repository=repository ) + rev, label, changeset_revision = \ + metadata_util.get_rev_label_changeset_revision_from_repository_metadata( trans, + repository_metadata, + repository=repository ) rval += '%s
' % \ ( trans.security.encode_id( repository.id ), changeset_revision, label ) return rval diff --git a/lib/tool_shed/grids/util.py b/lib/tool_shed/grids/util.py index bd7450d607e..a9d036d9577 100644 --- a/lib/tool_shed/grids/util.py +++ b/lib/tool_shed/grids/util.py @@ -16,7 +16,8 @@ def build_approved_select_field( trans, name, selected_value=None, for_component select_field.add_option( option_tup[ 0 ], option_tup[ 1 ], selected=selected ) return select_field -def build_changeset_revision_select_field( trans, repository, selected_value=None, add_id_to_name=True, downloadable=False, reviewed=False, not_reviewed=False ): +def build_changeset_revision_select_field( trans, repository, selected_value=None, add_id_to_name=True, + downloadable=False, reviewed=False, not_reviewed=False ): """Build a SelectField whose options are the changeset_rev strings of certain revisions of the received repository.""" options = [] changeset_tups = [] @@ -46,7 +47,10 @@ def build_changeset_revision_select_field( trans, repository, selected_value=Non # Restrict the options to all revisions that have associated metadata. repository_metadata_revisions = repository.metadata_revisions for repository_metadata in repository_metadata_revisions: - rev, label, changeset_revision = metadata_util.get_rev_label_changeset_revision_from_repository_metadata( trans, repository_metadata, repository=repository ) + rev, label, changeset_revision = \ + metadata_util.get_rev_label_changeset_revision_from_repository_metadata( trans, + repository_metadata, + repository=repository ) changeset_tups.append( ( rev, label, changeset_revision ) ) refresh_on_change_values.append( changeset_revision ) # Sort options by the revision label. Even though the downloadable_revisions query sorts by update_time, diff --git a/lib/tool_shed/util/metadata_util.py b/lib/tool_shed/util/metadata_util.py index cb08a572569..c196637a699 100644 --- a/lib/tool_shed/util/metadata_util.py +++ b/lib/tool_shed/util/metadata_util.py @@ -1108,16 +1108,19 @@ def get_rev_label_changeset_revision_from_repository_metadata( trans, repository changeset_revision = repository_metadata.changeset_revision ctx = suc.get_changectx_for_changeset( repo, changeset_revision ) if ctx: + changeset_revision_date = suc.get_readable_ctx_date( ctx ) rev = '%04d' % ctx.rev() - label = "%s:%s" % ( str( ctx.rev() ), changeset_revision ) + label = "%s:%s (%s)" % ( str( ctx.rev() ), changeset_revision, changeset_revision_date ) else: rev = '-1' label = "-1:%s" % changeset_revision return rev, label, changeset_revision -def get_sample_files_from_disk( repository_files_dir, tool_path=None, relative_install_dir=None, resetting_all_metadata_on_repository=False ): +def get_sample_files_from_disk( repository_files_dir, tool_path=None, relative_install_dir=None, + resetting_all_metadata_on_repository=False ): if resetting_all_metadata_on_repository: - # Keep track of the location where the repository is temporarily cloned so that we can strip it when setting metadata. + # Keep track of the location where the repository is temporarily cloned so that we can strip + # it when setting metadata. work_dir = repository_files_dir sample_file_metadata_paths = [] sample_file_copy_paths = [] diff --git a/lib/tool_shed/util/shed_util_common.py b/lib/tool_shed/util/shed_util_common.py index bf83152e1cc..3495ef49efe 100644 --- a/lib/tool_shed/util/shed_util_common.py +++ b/lib/tool_shed/util/shed_util_common.py @@ -924,6 +924,13 @@ def get_query_for_setting_metadata_on_repositories( trans, my_writable=False, or return trans.install_model.context.query( trans.install_model.ToolShedRepository ) \ .filter( trans.install_model.ToolShedRepository.table.c.uninstalled == False ) +def get_readable_ctx_date( ctx ): + """Convert the date of the changeset (the received ctx) to a human-readable date.""" + t, tz = ctx.date() + date = datetime( *gmtime( float( t ) - tz )[ :6 ] ) + ctx_date = date.strftime( "%Y-%m-%d" ) + return ctx_date + def get_repo_info_tuple_contents( repo_info_tuple ): """Take care in handling the repo_info_tuple as it evolves over time as new tool shed features are introduced.""" if len( repo_info_tuple ) == 6: @@ -1206,7 +1213,8 @@ def get_revision_label( trans, repository, changeset_revision ): repo = hg.repository( get_configured_ui(), repository.repo_path( trans.app ) ) ctx = get_changectx_for_changeset( repo, changeset_revision ) if ctx: - return "%s:%s" % ( str( ctx.rev() ), changeset_revision ) + return '%s:%s (%s)' % \ + ( str( ctx.rev() ), changeset_revision, str( get_readable_ctx_date( ctx ) ) ) else: return "-1:%s" % changeset_revision @@ -1215,7 +1223,8 @@ def get_rev_label_from_changeset_revision( repo, changeset_revision ): ctx = get_changectx_for_changeset( repo, changeset_revision ) if ctx: rev = '%04d' % ctx.rev() - label = "%s:%s" % ( str( ctx.rev() ), changeset_revision ) + label = '%s:%s (%s)' % \ + ( str( ctx.rev() ), changeset_revision, str( get_readable_ctx_date( ctx ) ) ) else: rev = '-1' label = "-1:%s" % changeset_revision @@ -1477,9 +1486,6 @@ def handle_email_alerts( trans, repository, content_alert_str='', new_repo_alert email_from = 'galaxy-no-reply@' + trans.request.host.split( ':' )[0] tip_changeset = repo.changelog.tip() ctx = repo.changectx( tip_changeset ) - t, tz = ctx.date() - date = datetime( *gmtime( float( t ) - tz )[:6] ) - display_date = date.strftime( "%Y-%m-%d" ) try: username = ctx.user().split()[0] except: @@ -1490,6 +1496,7 @@ def handle_email_alerts( trans, repository, content_alert_str='', new_repo_alert template = new_repo_email_alert_template else: template = email_alert_template + display_date = get_readable_ctx_date( ctx ) admin_body = string.Template( template ).safe_substitute( host=trans.request.host, sharable_link=sharable_link, repository_name=repository.name, diff --git a/templates/webapps/tool_shed/common/repository_actions_menu.mako b/templates/webapps/tool_shed/common/repository_actions_menu.mako index 129fbfe091b..93364794687 100644 --- a/templates/webapps/tool_shed/common/repository_actions_menu.mako +++ b/templates/webapps/tool_shed/common/repository_actions_menu.mako @@ -174,7 +174,9 @@ Mark repository as not deprecated %endif %if can_download: - Export this revision + %if changeset_revision is not None: + Export this revision + %endif Download as a .tar.gz file Download as a .tar.bz2 file Download as a zip file diff --git a/templates/webapps/tool_shed/repository/manage_repository.mako b/templates/webapps/tool_shed/repository/manage_repository.mako index a8a93e2b07f..a14160533b5 100644 --- a/templates/webapps/tool_shed/repository/manage_repository.mako +++ b/templates/webapps/tool_shed/repository/manage_repository.mako @@ -181,9 +181,9 @@ ${render_tool_shed_repository_actions( repository, metadata=metadata, changeset_
%if can_view_change_log: - ${revision_label | h} + ${revision_label} %else: - ${revision_label | h} + ${revision_label} %endif
diff --git a/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako b/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako index 5cc8a1f3126..8bddeafe513 100644 --- a/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako +++ b/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako @@ -51,7 +51,7 @@ ${render_galaxy_repository_actions( repository=repository )} %else:
- ${revision_label | h} + ${revision_label}
%endif
diff --git a/templates/webapps/tool_shed/repository/rate_repository.mako b/templates/webapps/tool_shed/repository/rate_repository.mako index f9f209c6153..22506cc2f2b 100644 --- a/templates/webapps/tool_shed/repository/rate_repository.mako +++ b/templates/webapps/tool_shed/repository/rate_repository.mako @@ -44,16 +44,20 @@ ${render_tool_shed_repository_actions( repository, metadata=None, changeset_revi ${render_clone_str( repository )} %endif - ${render_repository_type_select_field( repository_type_select_field, render_help=False )}
+
+ + ${repository.type | h} +
+
${repository.description | h}
- - ${repository.revision( trans.app ) | h} + + ${revision_label}
diff --git a/templates/webapps/tool_shed/repository/view_changelog.mako b/templates/webapps/tool_shed/repository/view_changelog.mako index 77515fe2d82..b97fc79e8a7 100644 --- a/templates/webapps/tool_shed/repository/view_changelog.mako +++ b/templates/webapps/tool_shed/repository/view_changelog.mako @@ -5,7 +5,6 @@ <%namespace file="/webapps/tool_shed/common/repository_actions_menu.mako" import="render_tool_shed_repository_actions" /> <% - from galaxy.web.framework.helpers import time_ago is_new = repository.is_new( trans.app ) can_push = trans.app.security_agent.can_push( trans.app, trans.user, repository ) can_download = not is_new and ( not is_malicious or can_push ) @@ -108,7 +107,7 @@ ${render_tool_shed_repository_actions( repository=repository )}
- ${time_ago( changeset[ 'date' ] )} + ${changeset[ 'display_date' ]}
diff --git a/templates/webapps/tool_shed/repository/view_changeset.mako b/templates/webapps/tool_shed/repository/view_changeset.mako index 14db2e83e87..0d9ac4b02d8 100644 --- a/templates/webapps/tool_shed/repository/view_changeset.mako +++ b/templates/webapps/tool_shed/repository/view_changeset.mako @@ -49,13 +49,15 @@ ${render_tool_shed_repository_actions( repository=repository )} %endif
<% + from tool_shed.util.shed_util_common import get_readable_ctx_date + changeset_revision_date = get_readable_ctx_date( ctx ) if can_download: - title_str = 'Changeset %s:%s' % ( ctx.rev(), ctx ) + title_str = 'Changeset %s:%s (%s)' % ( ctx.rev(), ctx, changeset_revision_date ) else: - title_str = '%s changeset %s:%s' % ( repository.name, ctx.rev(), ctx ) + title_str = '%s changeset %s:%s (%s)' % ( repository.name, ctx.rev(), ctx, changeset_revision_date ) %>
- ${title_str | h} + ${title_str}
@@ -63,10 +65,10 @@ ${render_tool_shed_repository_actions( repository=repository )} diff --git a/templates/webapps/tool_shed/repository/view_repository.mako b/templates/webapps/tool_shed/repository/view_repository.mako index 168d6638c6f..acf73943686 100644 --- a/templates/webapps/tool_shed/repository/view_repository.mako +++ b/templates/webapps/tool_shed/repository/view_repository.mako @@ -100,7 +100,11 @@ ${repository.name | h} %endif - ${render_repository_type_select_field( repository_type_select_field, render_help=False )} +
+ + ${repository.type | h} +
+
${repository.description | h} @@ -113,7 +117,7 @@ %if can_view_change_log: ${revision_label} %else: - ${revision_label | h} + ${revision_label} %endif
diff --git a/templates/webapps/tool_shed/repository_review/browse_review.mako b/templates/webapps/tool_shed/repository_review/browse_review.mako index 5d5770b66b7..2fcf92a22ff 100644 --- a/templates/webapps/tool_shed/repository_review/browse_review.mako +++ b/templates/webapps/tool_shed/repository_review/browse_review.mako @@ -34,7 +34,7 @@ ${render_tool_shed_repository_actions( repository=repository, changeset_revision
diff --git a/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako b/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako index daa557ecf92..000dec46618 100644 --- a/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako +++ b/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako @@ -45,7 +45,7 @@ ${render_tool_shed_repository_actions( repository=repository, changeset_revision
diff --git a/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako b/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako index d5f06a10f00..993e8bcba1e 100644 --- a/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako +++ b/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako @@ -67,7 +67,7 @@ ${render_tool_shed_repository_actions( repository=repository )}
- +
%if prev: - Previous changeset ${prev | h} + Previous changeset ${prev} %endif %if next: - Next changeset ${next | h} + Next changeset ${next} %endif
%if repository_reviews: diff --git a/templates/webapps/tool_shed/repository_review/select_previous_review.mako b/templates/webapps/tool_shed/repository_review/select_previous_review.mako index 285fd5b922f..8ccb9d12cf7 100644 --- a/templates/webapps/tool_shed/repository_review/select_previous_review.mako +++ b/templates/webapps/tool_shed/repository_review/select_previous_review.mako @@ -30,7 +30,7 @@ ${render_tool_shed_repository_actions( repository=repository )} %endif
- You have elected to create a new review for revision ${changeset_revision_label | h}of this repository. Since previous revisions have been reviewed, + You have elected to create a new review for revision ${changeset_revision_label}of this repository. Since previous revisions have been reviewed, you can select a previous review to copy to your new review, or click the Create a review without copying button.
@@ -39,7 +39,7 @@ ${render_tool_shed_repository_actions( repository=repository )}
@@ -76,7 +76,7 @@ ${render_tool_shed_repository_actions( repository=repository )} Copy this review
${previous_changeset_revision_label | h}${previous_changeset_revision_label} ${render_star_rating( repository_rating_name, review.rating, disabled=True )} ${approved_str | h}