commit/galaxy-central: greg: Apply patch from Brad Chapman that fixes an issue when downloading a zip archive of library datasets. Also include some miscellansous imporvements and code cleanup related to changes made in change set 4964:82107691d26e.
1 new changeset in galaxy-central: http://bitbucket.org/galaxy/galaxy-central/changeset/1d4dbfe2e2ce/ changeset: r4969:1d4dbfe2e2ce user: greg date: 2011-02-01 17:21:41 summary: Apply patch from Brad Chapman that fixes an issue when downloading a zip archive of library datasets. Also include some miscellansous imporvements and code cleanup related to changes made in change set 4964:82107691d26e. affected #: 10 files (5.6 KB) --- a/lib/galaxy/util/streamball.py Tue Feb 01 11:20:02 2011 -0500 +++ b/lib/galaxy/util/streamball.py Tue Feb 01 11:21:41 2011 -0500 @@ -1,7 +1,7 @@ """ A simple wrapper for writing tarballs as a stream. """ - +import os import logging, tarfile log = logging.getLogger( __name__ ) @@ -26,3 +26,19 @@ tf.add( file, arcname=rel ) tf.close() return [] + +class ZipBall(object): + def __init__(self, tmpf, tmpd): + self._tmpf = tmpf + self._tmpd = tmpd + def stream(self, environ, start_response): + response_write = start_response( self.wsgi_status, self.wsgi_headeritems ) + tmpfh = open( self._tmpf ) + response_write(tmpfh.read()) + tmpfh.close() + try: + os.unlink( self._tmpf ) + os.rmdir( self._tmpd ) + except OSError: + log.exception( "Unable to remove temporary library download archive and directory" ) + return [] --- a/lib/galaxy/web/controllers/library.py Tue Feb 01 11:20:02 2011 -0500 +++ b/lib/galaxy/web/controllers/library.py Tue Feb 01 11:21:41 2011 -0500 @@ -35,7 +35,7 @@ attach_popup=False, filterable="advanced" ), ] - columns.append( grids.MulticolFilterColumn( "search library dataset name, info, message, dbkey", + columns.append( grids.MulticolFilterColumn( "search dataset name, info, message, dbkey", cols_to_filter=[ columns[0], columns[1] ], key="free-text-search", visible=False, --- a/lib/galaxy/web/controllers/library_admin.py Tue Feb 01 11:20:02 2011 -0500 +++ b/lib/galaxy/web/controllers/library_admin.py Tue Feb 01 11:21:41 2011 -0500 @@ -50,7 +50,7 @@ # Columns that are valid for filtering but are not visible. grids.DeletedColumn( "Deleted", key="deleted", visible=False, filterable="advanced" ) ] - columns.append( grids.MulticolFilterColumn( "search library dataset name, info, message, dbkey", + columns.append( grids.MulticolFilterColumn( "search dataset name, info, message, dbkey", cols_to_filter=[ columns[0], columns[1] ], key="free-text-search", visible=False, --- a/lib/galaxy/web/controllers/library_common.py Tue Feb 01 11:20:02 2011 -0500 +++ b/lib/galaxy/web/controllers/library_common.py Tue Feb 01 11:21:41 2011 -0500 @@ -1706,20 +1706,12 @@ fname = lname.replace( ' ', '_' ) + '_files' if action == 'zip': archive.close() - tmpfh = open( tmpf ) - # clean up now - try: - os.unlink( tmpf ) - os.rmdir( tmpd ) - except OSError: - error = True - log.exception( "Unable to remove temporary library download archive and directory" ) - message = "Unable to create archive for download, please report this error" - status = 'error' - if not error: - trans.response.set_content_type( "application/x-zip-compressed" ) - trans.response.headers[ "Content-Disposition" ] = "attachment; filename=%s.%s" % (fname,outext) - return tmpfh + trans.response.set_content_type( "application/x-zip-compressed" ) + trans.response.headers[ "Content-Disposition" ] = "attachment; filename=%s.%s" % (fname,outext) + archive = util.streamball.ZipBall(tmpf, tmpd) + archive.wsgi_status = trans.response.wsgi_status() + archive.wsgi_headeritems = trans.response.wsgi_headeritems() + return archive.stream elif action == 'ngxzip': trans.response.set_content_type( "application/zip" ) trans.response.headers[ "Content-Disposition" ] = "attachment; filename=%s.%s" % (fname,outext) @@ -1831,11 +1823,11 @@ hist_names_str = ", ".join( [ target_history.name for target_history in target_histories ] ) num_source = len( ldda_ids ) - invalid_datasets num_target = len( target_histories ) - message = "%i %s have been imported into %i %s: %s" % ( num_source, - inflector.cond_plural( num_source, "dataset" ), - num_target, - inflector.cond_plural( num_target, "history" ), - hist_names_str ) + message = "%i %s imported into %i %s: %s" % ( num_source, + inflector.cond_plural( num_source, "dataset" ), + num_target, + inflector.cond_plural( num_target, "history" ), + hist_names_str ) trans.sa_session.refresh( current_history ) current_user_roles = trans.get_current_user_roles() source_lddas = [] @@ -2240,7 +2232,7 @@ # Perform search parser = MultifieldParser( [ 'name', 'info', 'dbkey', 'message' ], schema=schema ) # Search term with wildcards may be slow... - results = searcher.search( parser.parse( '*' + search_term + '*' ), minscore=0.1 ) + results = searcher.search( parser.parse( '*' + search_term + '*' ), minscore=0.5 ) ldda_ids = [ result[ 'id' ] for result in results ] lddas = [] for ldda_id in ldda_ids: --- a/scripts/data_libraries/build_whoosh_index.py Tue Feb 01 11:20:02 2011 -0500 +++ b/scripts/data_libraries/build_whoosh_index.py Tue Feb 01 11:21:41 2011 -0500 @@ -63,7 +63,10 @@ else: info = '' dbkey = ldda.metadata.dbkey - message = ldda.message + if ldda.message: + message = ldda.message + else: + message = '' yield id, name, info, dbkey, message def get_sa_session_and_needed_config_settings( ini_file ): --- a/templates/library/common/browse_library.mako Tue Feb 01 11:20:02 2011 -0500 +++ b/templates/library/common/browse_library.mako Tue Feb 01 11:21:41 2011 -0500 @@ -1,6 +1,7 @@ <%namespace file="/message.mako" import="render_msg" /><%namespace file="/library/common/library_item_info.mako" import="render_library_item_info" /><%namespace file="/library/common/common.mako" import="render_actions_on_multiple_items" /> +<%namespace file="/library/common/common.mako" import="render_compression_types_help" /><%namespace file="/library/common/common.mako" import="common_javascripts" /><%! @@ -564,34 +565,6 @@ </script><!-- running: do not change this comment, used by TwillTestCase.library_wait --> %endif - - ## Help about compression types - - <div class="libraryItemBody"> - <p class="infomark"> - TIP: You can download individual library files by selecting "Download this dataset" from the context menu (triangle) next to the dataset's name. - </p> - </div> - %if len( comptypes ) > 1: - <div class="libraryItemBody"> - <p class="infomark"> - TIP: Multiple compression options are available for downloading library datasets: - </p> - <ul style="padding-left: 1em; list-style-type: disc;"> - %if 'gz' in comptypes: - <li>gzip: Recommended for fast network connections - %if trans.app.config.upstream_gzip: - NOTE: The file you receive will be an uncompressed .tar file - this is because the Galaxy server compresses it and your browser decompresses it on the fly. - %endif - </li> - %endif - %if 'bz2' in comptypes: - <li>bzip2: Recommended for slower network connections (smaller size but takes longer to compress)</li> - %endif - %if 'zip' in comptypes: - <li>zip: Not recommended but is provided as an option for those who cannot open the above formats</li> - %endif - </ul> - </div> - %endif + + ${render_compression_types_help( comptypes )} </%def> --- a/templates/library/common/common.mako Tue Feb 01 11:20:02 2011 -0500 +++ b/templates/library/common/common.mako Tue Feb 01 11:21:41 2011 -0500 @@ -43,6 +43,36 @@ </script></%def> +<%def name="render_compression_types_help( comptypes )"> + <div class="libraryItemBody"> + <p class="infomark"> + TIP: You can download individual library datasets by selecting "Download this dataset" from the context menu (triangle) next to each dataset's name. + </p> + </div> + %if len( comptypes ) > 1: + <div class="libraryItemBody"> + <p class="infomark"> + TIP: Several compression options are available for downloading multiple library datasets simultaneously: + </p> + <ul style="padding-left: 1em; list-style-type: disc;"> + %if 'gz' in comptypes: + <li>gzip: Recommended for fast network connections + %if trans.app.config.upstream_gzip: + NOTE: The file you receive will be an uncompressed .tar file - this is because the Galaxy server compresses it and your browser decompresses it on the fly. + %endif + </li> + %endif + %if 'bz2' in comptypes: + <li>bzip2: Recommended for slower network connections (smaller size but takes longer to compress)</li> + %endif + %if 'zip' in comptypes: + <li>zip: Not recommended but is provided as an option for those who cannot open the above formats</li> + %endif + </ul> + </div> + %endif +</%def> + <%def name="render_upload_form( cntrller, upload_option, action, library_id, folder_id, replace_dataset, file_formats, dbkeys, space_to_tab, link_data_only, widgets, roles_select_list, history, show_deleted )"><% import os, os.path --- a/templates/library/common/import_datasets_to_histories.mako Tue Feb 01 11:20:02 2011 -0500 +++ b/templates/library/common/import_datasets_to_histories.mako Tue Feb 01 11:21:41 2011 -0500 @@ -58,8 +58,14 @@ <select id="single-dest-select" name="target_history_ids"><option value=""></option> %for i, target_history in enumerate( target_histories ): - <% encoded_id = trans.security.encode_id( target_history.id ) %> - <option value="${encoded_id}">${i + 1}: ${h.truncate( target_history.name, 30 )}</option> + <% + encoded_id = trans.security.encode_id( target_history.id ) + if target_history == current_history: + current_history_text = " (current history)" + else: + current_history_text = "" + %> + <option value="${encoded_id}">${i + 1}: ${h.truncate( target_history.name, 30 )}${current_history_text}</option> %endfor </select><br/><br/> @@ -68,12 +74,15 @@ <div id="multiple-destination" style="display: none;"> %for i, target_history in enumerate( target_histories ): <% - cur_history_text = "" encoded_id = trans.security.encode_id( target_history.id ) + if target_history == current_history: + current_history_text = " (current history)" + else: + current_history_text = "" %><div class="form-row"><input type="checkbox" name="target_history_ids" id="target_history_${encoded_id}" value="${encoded_id}"/> - <label for="target_history_${encoded_id}" style="display: inline; font-weight:normal;">${i + 1}: ${target_history.name}${cur_history_text}</label> + <label for="target_history_${encoded_id}" style="display: inline; font-weight:normal;">${i + 1}: ${target_history.name}${current_history_text}</label></div> %endfor </div> --- a/templates/library/common/library_dataset_search_results.mako Tue Feb 01 11:20:02 2011 -0500 +++ b/templates/library/common/library_dataset_search_results.mako Tue Feb 01 11:21:41 2011 -0500 @@ -1,6 +1,7 @@ <%namespace file="/message.mako" import="render_msg" /><%namespace file="/library/common/browse_library.mako" import="render_dataset" /><%namespace file="/library/common/common.mako" import="render_actions_on_multiple_items" /> +<%namespace file="/library/common/common.mako" import="render_compression_types_help" /><%namespace file="/library/common/common.mako" import="common_javascripts" /><%! @@ -127,35 +128,7 @@ ${render_actions_on_multiple_items( actions_to_exclude=[ 'manage_permissions' ] )} </table></form> - ## Help about compression types - - <div class="libraryItemBody"> - <p class="infomark"> - TIP: You can download individual library files by selecting "Download this dataset" from the context menu (triangle) next to the dataset's name. - </p> - </div> - %if len( comptypes ) > 1: - <div class="libraryItemBody"> - <p class="infomark"> - TIP: Multiple compression options are available for downloading library datasets: - </p> - <ul style="padding-left: 1em; list-style-type: disc;"> - %if 'gz' in comptypes: - <li>gzip: Recommended for fast network connections - %if trans.app.config.upstream_gzip: - NOTE: The file you receive will be an uncompressed .tar file - this is because the Galaxy server compresses it and your browser decompresses it on the fly. - %endif - </li> - %endif - %if 'bz2' in comptypes: - <li>bzip2: Recommended for slower network connections (smaller size but takes longer to compress)</li> - %endif - %if 'zip' in comptypes: - <li>zip: Not recommended but is provided as an option for those who cannot open the above formats</li> - %endif - </ul> - </div> - %endif + ${render_compression_types_help( comptypes )} %elif status != 'error': <p>The string "${search_term}" was not found in any of the following information components for any library datasets that you can access.</p> ${render_searched_components()} --- a/test/functional/test_library_security.py Tue Feb 01 11:20:02 2011 -0500 +++ b/test/functional/test_library_security.py Tue Feb 01 11:21:41 2011 -0500 @@ -300,7 +300,7 @@ library_id=self.security.encode_id( library1.id ), ldda_ids=self.security.encode_id( ldda2.id ), new_history_name='goodbye', - strings_displayed=[ '1 dataset have been imported into 1 history' ] ) + strings_displayed=[ '1 dataset imported into 1 history' ] ) self.logout() # regular_user2 should not be able to see ldda2 self.login( email=regular_user2.email ) Repository URL: https://bitbucket.org/galaxy/galaxy-central/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.
participants (1)
-
Bitbucket