Fixed the ordering in selectboxes

Fixed a bug in editing samples in the request page
This commit is contained in:
Ramkrishna Chakrabarty
2009-11-04 10:16:20 -05:00
parent f4bedf8e5c
commit 11368df068
7 changed files with 24 additions and 22 deletions
+2 -1
View File
@@ -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,
+3 -1
View File
@@ -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:
+5 -4
View File
@@ -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)
+12 -10
View File
@@ -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 <b>%s</b>.' % request.samples[index].name
msg = 'Please fill the barcode for sample <b>%s</b>.' % 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 <b>%s</b> of sample <b>%s</b> already belongs
another sample in this request. The sample bar codes must
msg = '''The barcode <b>%s</b> of sample <b>%s</b> 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 <b>%s</b> of sample <b>%s</b> already
msg = '''The bar code <b>%s</b> of sample <b>%s</b>
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 ),
+1 -1
View File
@@ -195,7 +195,7 @@
<div class="toolForm">
##<div class="toolFormTitle">Samples (${len(request.samples)})</div>
<form id="edit_form" name="edit_form" action="${h.url_for( controller='requests_admin', action='show_request' )}" enctype="multipart/form-data" method="post" >
<form id="show_request" name="show_request" action="${h.url_for( controller='requests_admin', action='show_request', edit_mode=edit_mode )}" enctype="multipart/form-data" method="post" >
<div class="form-row">
%if current_samples:
%if not request.type.sample_form.layout:
-4
View File
@@ -224,20 +224,16 @@
%endif
</td>
<td>
##<div class="form-row">
<label>Import from csv file</label>
<input type="file" name="file_data" />
<input type="submit" name="import_samples_button" value="Import samples"/>
##</div>
</td>
<td>
##<div class="form-row">
%if current_samples:
<label>Copy from sample</label>
${sample_copy.get_html()}
%endif
<input type="submit" name="add_sample_button" value="Add New"/>
##</div>
</td>
</div>
</tr>
+1 -1
View File
@@ -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) )