diff --git a/lib/galaxy/web/controllers/requests_admin.py b/lib/galaxy/web/controllers/requests_admin.py
index 40d352262fe..37a86c0a00a 100644
--- a/lib/galaxy/web/controllers/requests_admin.py
+++ b/lib/galaxy/web/controllers/requests_admin.py
@@ -493,6 +493,7 @@ class RequestsAdmin( BaseUIController, UsesFormDefinitions ):
return trans.response.send_redirect( web.url_for( controller='requests_admin',
action='select_datasets_to_transfer',
request_id=trans.security.encode_id( request.id ),
+ external_service_id=trans.security.encode_id( external_service.id ),
status=status,
message=message ) )
def __create_sample_datasets( self, trans, sample, selected_datasets_to_transfer, external_service ):
diff --git a/lib/galaxy/web/controllers/requests_common.py b/lib/galaxy/web/controllers/requests_common.py
index 5e989154baf..88bbc3320f8 100644
--- a/lib/galaxy/web/controllers/requests_common.py
+++ b/lib/galaxy/web/controllers/requests_common.py
@@ -1011,6 +1011,8 @@ class RequestsCommon( BaseUIController, UsesFormDefinitions ):
sample = trans.sa_session.query( trans.model.Sample ).get( trans.security.decode_id( sample_id ) )
except:
return invalid_id_redirect( trans, cntrller, sample_id, 'sample' )
+ external_service_id = params.get( 'external_service_id', None )
+ external_service = trans.sa_session.query( trans.model.ExternalService ).get( trans.security.decode_id( external_service_id ) )
# See if a library and folder have been set for this sample.
if is_admin and not sample.library or not sample.folder:
status = 'error'
@@ -1043,6 +1045,7 @@ class RequestsCommon( BaseUIController, UsesFormDefinitions ):
return trans.fill_template( '/requests/common/view_sample_datasets.mako',
cntrller=cntrller,
title=title,
+ external_service=external_service,
sample=sample,
sample_datasets=sample_datasets,
transfer_status=transfer_status,
diff --git a/templates/requests/common/common.mako b/templates/requests/common/common.mako
index dc461be8517..8e79e7ca1a9 100644
--- a/templates/requests/common/common.mako
+++ b/templates/requests/common/common.mako
@@ -298,9 +298,14 @@
## This link will direct the admin to a page allowing them to manage datasets.
${len( sample.datasets )}
%elif sample.datasets:
+ <%
+ # Get an external_service from one of the sample datasets. This assumes all sample datasets are associated with
+ # the same external service - hopefully this is a good assumption.
+ external_service = sample.datasets[0].external_service
+ %>
## Since this is a regular user, only display a link if there is at least 1
## selected dataset for the sample.
- ${len( sample.datasets )}
+ ${len( sample.datasets )}
%else:
## Since this is a regular user, do not display a link if there are no datasets.
${len( sample.datasets )}
@@ -424,8 +429,13 @@
%endif
%if sample.datasets and len( sample.datasets ) > len( transferred_dataset_files ) and sample.library and sample.folder:
Manage selected datasets
- %elif sample.datasets and len(sample.datasets ) == len( transferred_dataset_files ):
- View transferred datasets
+ %elif sample.datasets and len( sample.datasets ) == len( transferred_dataset_files ):
+ <%
+ # Get an external_service from one of the sample datasets. This assumes all sample datasets are associated with
+ # the same external service - hopefully this is a good assumption.
+ external_service = sample.datasets[0].external_service
+ %>
+ View transferred datasets
%endif
%else:
@@ -483,6 +493,11 @@
## This link will direct the admin to a page allowing them to manage datasets.
${len( sample.datasets )}
%elif sample.library and sample.datasets:
+ <%
+ # Get an external_service from one of the sample datasets. This assumes all sample datasets are associated with
+ # the same external service - hopefully this is a good assumption.
+ external_service = sample.datasets[0].external_service
+ %>
## Since this is a regular user, only display a link if there is at least 1
## selected dataset for the sample.
${len( sample.datasets )}
diff --git a/templates/requests/common/find_samples.mako b/templates/requests/common/find_samples.mako
index 79ec8d96788..29512adef24 100644
--- a/templates/requests/common/find_samples.mako
+++ b/templates/requests/common/find_samples.mako
@@ -78,7 +78,12 @@
%else:
State: ${sample.state.name}
%endif
- Datasets: ${len( sample.datasets )}
+ <%
+ # Get an external_service from one of the sample datasets. This assumes all sample datasets are associated with
+ # the same external service - hopefully this is a good assumption.
+ external_service = sample.datasets[0].external_service
+ %>
+ Datasets: ${len( sample.datasets )}
%if is_admin:
User: ${sample.request.user.email}
%endif
diff --git a/templates/requests/common/view_sample_datasets.mako b/templates/requests/common/view_sample_datasets.mako
index 5aad1eefb63..986c88d78a9 100644
--- a/templates/requests/common/view_sample_datasets.mako
+++ b/templates/requests/common/view_sample_datasets.mako
@@ -25,7 +25,7 @@
%if can_select_datasets:
-
Select more datasets
+
Select more datasets
%endif
View target Data Library
Browse this request
diff --git a/test/base/twilltestcase.py b/test/base/twilltestcase.py
index 639af36d2c6..11571989ce0 100644
--- a/test/base/twilltestcase.py
+++ b/test/base/twilltestcase.py
@@ -13,6 +13,7 @@ from markupsafe import escape
from elementtree import ElementTree
from galaxy.web import security
from galaxy.web.framework.helpers import iff
+from galaxy.util.json import from_json_string
from base.asserts import verify_assertions
buffer = StringIO.StringIO()
@@ -34,7 +35,14 @@ class TwillTestCase( unittest.TestCase ):
self.host = os.environ.get( 'GALAXY_TEST_HOST' )
self.port = os.environ.get( 'GALAXY_TEST_PORT' )
self.url = "http://%s:%s" % ( self.host, self.port )
- self.file_dir = os.environ.get( 'GALAXY_TEST_FILE_DIR' )
+ self.file_dir = os.environ.get( 'GALAXY_TEST_FILE_DIR', None )
+ self.migrated_tools_file = os.environ.get( 'GALAXY_MIGRATED_TOOLS_FILE', None )
+ if self.migrated_tools_file:
+ f = open( self.migrated_tools_file, 'r' )
+ self.migrated_tools_dict = from_json_string( f.readlines() )
+ f.close()
+ else:
+ self.migrated_tools_dict = {}
self.keepOutdir = os.environ.get( 'GALAXY_TEST_SAVE', '' )
if self.keepOutdir > '':
try:
@@ -1792,9 +1800,10 @@ class TwillTestCase( unittest.TestCase ):
tc.submit( "save_samples_button" )
for check_str in strings_displayed_after_submit:
self.check_page_for_string( check_str )
- def add_datasets_to_sample( self, request_id, sample_id, sample_datasets, strings_displayed=[], strings_displayed_after_submit=[] ):
+ def add_datasets_to_sample( self, request_id, sample_id, external_service_id, sample_datasets, strings_displayed=[], strings_displayed_after_submit=[] ):
# visit the dataset selection page
- url = "%s/requests_admin/select_datasets_to_transfer?cntrller=requests_admin&sample_id=%s&request_id=%s" % ( self.url, sample_id, request_id )
+ url = "%s/requests_admin/select_datasets_to_transfer?cntrller=requests_admin&sample_id=%s&request_id=%s&external_service_id=%s" % \
+ ( self.url, sample_id, request_id, external_service_id )
self.visit_url( url )
for check_str in strings_displayed:
self.check_page_for_string( check_str )
diff --git a/test/functional/test_sample_tracking.py b/test/functional/test_sample_tracking.py
index f6f158eb956..57e5618c1a6 100644
--- a/test/functional/test_sample_tracking.py
+++ b/test/functional/test_sample_tracking.py
@@ -800,11 +800,13 @@ class TestFormsAndSampleTracking( TwillTestCase ):
sample_dataset_file_names = [ dataset.split( '/' )[-1] for dataset in sample_datasets ]
global request1_sample1
request1_sample1 = request1.get_sample( 'Sample1_renamed' )
+ external_service = request1_sample1.external_service
strings_displayed_after_submit = [ 'Datasets (%s) have been selected for sample (%s)' % \
( str( sample_dataset_file_names )[1:-1].replace( "'", "" ), request1_sample1.name ) ]
strings_displayed = [ 'Select datasets to transfer from data directory configured for the sequencer' ]
self.add_datasets_to_sample( request_id=self.security.encode_id( request2.id ),
sample_id= self.security.encode_id( request1_sample1.id ),
+ external_service_id=self.security.encode_id( external_serviceexternal_service.id ),
sample_datasets=sample_datasets,
strings_displayed=strings_displayed,
strings_displayed_after_submit=strings_displayed_after_submit )