[galaxy-dev] [hg] galaxy 3413: lims: added feature to to transfer folders fro...
Greg Von Kuster
greg at bx.psu.edu
Fri Feb 19 11:16:34 EST 2010
details: http://www.bx.psu.edu/hg/galaxy/rev/bbff5050cfd2
changeset: 3413:bbff5050cfd2
user: rc
date: Thu Feb 18 11:50:19 2010 -0500
description:
lims: added feature to to transfer folders from a sequencer
diffstat:
lib/galaxy/web/controllers/requests_admin.py | 63 ++++++++++++++-------------
1 files changed, 32 insertions(+), 31 deletions(-)
diffs (94 lines):
diff -r e05cdf1205bc -r bbff5050cfd2 lib/galaxy/web/controllers/requests_admin.py
--- a/lib/galaxy/web/controllers/requests_admin.py Thu Feb 18 11:26:39 2010 -0500
+++ b/lib/galaxy/web/controllers/requests_admin.py Thu Feb 18 11:50:19 2010 -0500
@@ -1146,7 +1146,7 @@
for index in range(len(sample.request.samples)):
# check for empty bar code
if not barcode.strip():
- msg = 'Please fill the barcode for sample <b>%s</b>.' % samples[index].name
+ msg = 'Please fill the barcode for sample <b>%s</b>.' % sample.name
break
# check all the saved bar codes
all_samples = trans.sa_session.query( trans.app.model.Sample )
@@ -1401,9 +1401,19 @@
sample_id=trans.security.encode_id(sample.id),
msg=msg, messagetype='error',
folder_path=folder_path ))
- files = output.split()[2:]
- return files
-
+ return output.split()[2:]
+
+ def __get_files_in_dir(self, trans, sample, folder_path):
+ tmpfiles = self.__get_files(trans, sample, folder_path)
+ for tf in tmpfiles:
+ if tf[-1] == os.sep:
+ self.__get_files_in_dir(trans, sample, os.path.join(folder_path, tf))
+ else:
+ sample.dataset_files.append([os.path.join(folder_path, tf),
+ sample.transfer_status.NOT_STARTED])
+ trans.sa_session.add( sample )
+ trans.sa_session.flush()
+ return
@web.expose
@web.require_admin
def get_data(self, trans, **kwd):
@@ -1460,19 +1470,24 @@
sample=sample,
dataset_files=sample.dataset_files)
elif params.get( 'start_transfer_button', False ):
- for f in files_list:
- if f[-1] == os.sep:
- # the selected item is a folder so transfer all the
- # folder contents
- sample.dataset_files.append([os.path.join(folder_path, f),
- sample.transfer_status.NOT_STARTED])
- else:
- sample.dataset_files.append([os.path.join(folder_path, f),
- sample.transfer_status.NOT_STARTED])
- trans.sa_session.add( sample )
- trans.sa_session.flush()
- return self.__start_datatx(trans, sample)
-
+ folder_files = []
+ if len(files_list):
+ for f in files_list:
+ if f[-1] == os.sep:
+ # the selected item is a folder so transfer all the
+ # folder contents
+ self.__get_files_in_dir(trans, sample, os.path.join(folder_path, f))
+ else:
+ sample.dataset_files.append([os.path.join(folder_path, f),
+ sample.transfer_status.NOT_STARTED])
+ trans.sa_session.add( sample )
+ trans.sa_session.flush()
+ return self.__start_datatx(trans, sample)
+ return trans.response.send_redirect( web.url_for( controller='requests_admin',
+ action='show_datatx_page',
+ sample_id=trans.security.encode_id(sample.id),
+ folder_path=folder_path))
+
def __setup_datatx_user(self, trans, library, folder):
'''
This method sets up the datatx user:
@@ -1562,20 +1577,6 @@
dataset_index=index,
cmd=cmd)
dtt.start()
-# # set the transfer status
-# sample.dataset_files[index][1] = sample.transfer_status.IN_PROGRESS
-# trans.sa_session.add( sample )
-# trans.sa_session.flush()
-# try:
-# retcode = subprocess.call(cmd)
-# except Exception, e:
-# error_msg = dfile.split('/')[-1] + ": Data transfer failed. " + str(e) + "<br/>"
-# return trans.response.send_redirect( web.url_for( controller='requests_admin',
-# action='show_datatx_page',
-# sample_id=trans.security.encode_id(sample.id),
-# folder_path=os.path.dirname(dfile),
-# messagetype='error',
-# msg=error_msg))
# set the sample state to the last state
if sample.current_state().id != sample.request.type.states[-1].id:
event = trans.app.model.SampleEvent(sample, sample.request.type.states[-1],
More information about the galaxy-dev
mailing list