From 11368df068dee3ca47d50d8ce52403f3b5983900 Mon Sep 17 00:00:00 2001 From: Ramkrishna Chakrabarty Date: Wed, 4 Nov 2009 10:16:20 -0500 Subject: [PATCH] Fixed the ordering in selectboxes Fixed a bug in editing samples in the request page --- lib/galaxy/model/mapping.py | 3 ++- lib/galaxy/web/controllers/forms.py | 4 +++- lib/galaxy/web/controllers/requests.py | 9 ++++---- lib/galaxy/web/controllers/requests_admin.py | 22 +++++++++++--------- templates/admin/requests/show_request.mako | 2 +- templates/requests/show_request.mako | 4 ---- test/base/twilltestcase.py | 2 +- 7 files changed, 24 insertions(+), 22 deletions(-) diff --git a/lib/galaxy/model/mapping.py b/lib/galaxy/model/mapping.py index 6fbebc8161e..09a783dd571 100644 --- a/lib/galaxy/model/mapping.py +++ b/lib/galaxy/model/mapping.py @@ -652,7 +652,8 @@ assign_mapper( context, Request, Request.table, primaryjoin=( Request.table.c.user_id == User.table.c.id ), backref="requests" ), samples=relation( Sample, - primaryjoin=( Request.table.c.id == Sample.table.c.request_id ) ), + primaryjoin=( Request.table.c.id == Sample.table.c.request_id ), + order_by=asc(Sample.table.c.update_time) ), folder=relation( LibraryFolder, primaryjoin=( Request.table.c.folder_id == LibraryFolder.table.c.id ) ), library=relation( Library, diff --git a/lib/galaxy/web/controllers/forms.py b/lib/galaxy/web/controllers/forms.py index 30515b238a5..623ba700451 100644 --- a/lib/galaxy/web/controllers/forms.py +++ b/lib/galaxy/web/controllers/forms.py @@ -60,7 +60,9 @@ class Forms( BaseController ): form_type_selectbox.add_option('Select one', 'none', selected=True) else: form_type_selectbox.add_option('Select one', 'none') - for ft in trans.app.model.FormDefinition.types.items(): + fd_types = trans.app.model.FormDefinition.types.items() + fd_types.sort() + for ft in fd_types: if selected == ft[1]: form_type_selectbox.add_option(ft[1], ft[1], selected=True) else: diff --git a/lib/galaxy/web/controllers/requests.py b/lib/galaxy/web/controllers/requests.py index e01d9e76c57..aacd1af7509 100644 --- a/lib/galaxy/web/controllers/requests.py +++ b/lib/galaxy/web/controllers/requests.py @@ -304,8 +304,7 @@ class Requests( BaseController ): s = trans.app.model.Sample(sample_name, '', request, form_values) s.flush() else: - for index in range(len(current_samples)): - sample_index = index + for sample_index in range(len(current_samples)): sample_name = current_samples[sample_index][0] new_sample_name = util.restore_text( params.get( 'sample_%i_name' % sample_index, '' ) ) sample_values = [] @@ -379,8 +378,10 @@ class Requests( BaseController ): details=details, edit_mode=edit_mode) def __select_request_type(self, trans, rtid): + requesttype_list = trans.sa_session.query( trans.app.model.RequestType )\ + .order_by( trans.app.model.RequestType.name.asc() ) rt_ids = ['none'] - for rt in trans.sa_session.query( trans.app.model.RequestType ): + for rt in requesttype_list: if not rt.deleted: rt_ids.append(str(rt.id)) select_reqtype = SelectField('select_request_type', @@ -390,7 +391,7 @@ class Requests( BaseController ): select_reqtype.add_option('Select one', 'none', selected=True) else: select_reqtype.add_option('Select one', 'none') - for rt in trans.sa_session.query( trans.app.model.RequestType ): + for rt in requesttype_list: if not rt.deleted: if rtid == rt.id: select_reqtype.add_option(rt.name, rt.id, selected=True) diff --git a/lib/galaxy/web/controllers/requests_admin.py b/lib/galaxy/web/controllers/requests_admin.py index cafd1c694c0..b8348c6cdbf 100644 --- a/lib/galaxy/web/controllers/requests_admin.py +++ b/lib/galaxy/web/controllers/requests_admin.py @@ -266,8 +266,10 @@ class Requests( BaseController ): #---- Request Creation ---------------------------------------------------------- # def __select_request_type(self, trans, rtid): + requesttype_list = trans.sa_session.query( trans.app.model.RequestType )\ + .order_by( trans.app.model.RequestType.name.asc() ) rt_ids = ['none'] - for rt in trans.sa_session.query( trans.app.model.RequestType ): + for rt in requesttype_list: if not rt.deleted: rt_ids.append(str(rt.id)) select_reqtype = SelectField('select_request_type', @@ -277,7 +279,7 @@ class Requests( BaseController ): select_reqtype.add_option('Select one', 'none', selected=True) else: select_reqtype.add_option('Select one', 'none') - for rt in trans.sa_session.query( trans.app.model.RequestType ): + for rt in requesttype_list: if not rt.deleted: if rtid == rt.id: select_reqtype.add_option(rt.name, rt.id, selected=True) @@ -799,7 +801,7 @@ class Requests( BaseController ): # save all the new/unsaved samples entered by the user if edit_mode == 'False': for index in range(len(current_samples)-len(request.samples)): - sample_index = index + len(request.samples) + sample_index = len(request.samples) sample_name = util.restore_text( params.get( 'sample_%i_name' % sample_index, '' ) ) sample_values = [] for field_index in range(len(request.type.sample_form.fields)): @@ -992,7 +994,7 @@ class Requests( BaseController ): bar_code = util.restore_text(params.get('sample_%i_bar_code' % index, '')) # check for empty bar code if not bar_code.strip(): - msg = 'Please fill the bar code for sample %s.' % request.samples[index].name + msg = 'Please fill the barcode for sample %s.' % request.samples[index].name break # check all the unsaved bar codes count = 0 @@ -1000,8 +1002,8 @@ class Requests( BaseController ): if bar_code == util.restore_text(params.get('sample_%i_bar_code' % i, '')): count = count + 1 if count > 1: - msg = '''The bar code %s of sample %s already belongs - another sample in this request. The sample bar codes must + msg = '''The barcode %s of sample %s belongs + another sample in this request. The sample barcodes must be unique throughout the system''' % \ (bar_code, request.samples[index].name) break @@ -1009,7 +1011,7 @@ class Requests( BaseController ): all_samples = trans.sa_session.query( trans.app.model.Sample ) for sample in all_samples: if bar_code == sample.bar_code: - msg = '''The bar code %s of sample %s already + msg = '''The bar code %s of sample %s belongs another sample. The sample bar codes must be unique throughout the system''' % \ (bar_code, request.samples[index].name) @@ -1044,7 +1046,7 @@ class Requests( BaseController ): return trans.response.send_redirect( web.url_for( controller='requests_admin', action='bar_codes', request_id=request.id, - msg='Bar codes has been saved for this request', + msg='Bar codes have been saved for this request', messagetype='done')) def __set_request_state(self, request): @@ -1162,8 +1164,8 @@ class Requests( BaseController ): if params.get( 'create', False ): return trans.fill_template( '/admin/requests/create_request_type.mako', request_forms=get_all_forms( trans, - filter=dict(deleted=False), - form_type=trans.app.model.FormDefinition.types.REQUEST ), + filter=dict(deleted=False), + form_type=trans.app.model.FormDefinition.types.REQUEST ), sample_forms=get_all_forms( trans, filter=dict(deleted=False), form_type=trans.app.model.FormDefinition.types.SAMPLE ), diff --git a/templates/admin/requests/show_request.mako b/templates/admin/requests/show_request.mako index 81b79c6cab7..f9272e9bd9c 100644 --- a/templates/admin/requests/show_request.mako +++ b/templates/admin/requests/show_request.mako @@ -195,7 +195,7 @@
##
Samples (${len(request.samples)})
-
+
%if current_samples: %if not request.type.sample_form.layout: diff --git a/templates/requests/show_request.mako b/templates/requests/show_request.mako index 9ce21698b3a..e7ec54c91a0 100644 --- a/templates/requests/show_request.mako +++ b/templates/requests/show_request.mako @@ -224,20 +224,16 @@ %endif - ##
- ##
- ##
%if current_samples: ${sample_copy.get_html()} %endif - ##
diff --git a/test/base/twilltestcase.py b/test/base/twilltestcase.py index 57db03bbde2..607f5b91e77 100644 --- a/test/base/twilltestcase.py +++ b/test/base/twilltestcase.py @@ -1272,7 +1272,7 @@ class TwillTestCase( unittest.TestCase ): for index, bar_code in enumerate(bar_codes): tc.fv( "1", "sample_%i_bar_code" % index, bar_code ) tc.submit( "save_bar_codes" ) - self.check_page_for_string( 'Bar codes has been saved for this request' ) + self.check_page_for_string( 'Bar codes have been saved for this request' ) def change_sample_state( self, sample_name, sample_id, new_state_id, new_state_name, comment='' ): self.home() self.visit_url( "%s/requests_admin/show_events?sample_id=%i" % (self.url, sample_id) )