galaxy-dev
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
September 2009
- 15 participants
- 140 discussions
Hi Galaxy team,
The following is just a bunch of thoughts after using Galaxy for a
while and which might be interesting for future developments...
1. Interface consistency: "Save"
* There are three nice icons at the top of all my dataset items in the
history panel on the right for view, edit and delete. So why is there
no save icon at the same location instead of a link further down?
* When I edit a workflow there is a save button above the canvas and
there is another on in the panel on the right when I edit the
properties of a specific workflow item. As far as I can tell these
buttons are not completely redundant, but why do I need two save
buttons?
2. Provenance data
* Reproducibility is important and it is nice that Galaxy
automatically captures your analysis in histories, but if I want to
have a second look at my data after let's say a few months to figure
out what I did exactly and how a certain combination of data and tools
produced a certain result. Hence if I for example executed a workflow
once every two weeks on updated data for many months I might want to
retrieve the history for a certain version of a database. So I might
want to say give me the histories containing datasets tagged as
Ensembl version 48, or UniProt 3 or some version of a reference
assembly, etc. Or I might want to see how the results changed for a
certain gene over time as result of updated databases and /or tools.
So I might want to say to Galaxy show me all histories containing
ENSGALG000012589 or NM_45689725. Hence, I'd love to be able to search
histories. In addition to make it a bit easier to trace thing in
browse mode it would be nice if the date a history was last modified
would be visible. Currently I only have the age of the history in
minutes, hours or days. That is convenient for recent items, but for
things that are longer ago a date makes more sense to me....
* There is a fixed "Database/Build" popup that I can use to tag my
data sets, but this feels artificially limited. Is there any reason
why the species and database version cannot be separate items? If
there would be a popup first to select a species followed by a second
popup to select the genome assembly version, the lists could be a lot
smaller and hence easier to navigate.
In addition there are cases where I do have a species, but don't have
an assembly or where there are additional version numbers to keep
track of.
For example I have lots of Ensembl data. Ensembl does not have a
single version number, but 3 version numbers. There is one for the
database schema, one for the assembly and one for the annotation/
genebuild. The curent version for mouse is for example: 55 37 h, where
55 is the release and schema version number, 37 the assembly and "h"
the version of the gene build. In addition I recently moved to a
proteomics group and might want to capture DB version numbers for
species without a reference assembly. for example I might know the
species name and the fact I'm using UniProt 15.5... but currently I
cannot easily capture that in a consistent way. (I know I might add
this to the "info" for a dataset, but it's free text, with all kinds
of possible spelling variants as a result...)
Cheers,
Pi
-------------------------------------------------------------
Biomolecular Mass Spectrometry and Proteomics
Utrecht University
Visiting address:
H.R. Kruyt building room O607
Padualaan 8
3584 CH Utrecht
The Netherlands
Mail address:
P.O. box 80.082
3508 TB Utrecht
The Netherlands
phone: +31 (0)6-143 66 783
email: pieter.neerincx(a)gmail.com
skype: pieter.online
------------------------------------------------------------
4
4
Hi,
Is it possible to have a Save As option when saving files? The default
naming scheme for saved files is pretty painful, it would be nice to be
able to give a sensible filename to a saved item /before/ downloading.
Thanks,
Chris
--
Dr Chris Cole
Senior Bioinformatics Research Officer
School of Life Sciences Research
University of Dundee
Dow Street
Dundee
DD1 5EH
Scotland, UK
url: http://network.nature.com/profile/drchriscole
e-mail: chris(a)compbio.dundee.ac.uk
Tel: +44 (0)1382 388 721
The University of Dundee is a registered Scottish charity, No: SC015096
2
2
21 Sep '09
details: http://www.bx.psu.edu/hg/galaxy/rev/ebf68a725c09
changeset: 2730:ebf68a725c09
user: Greg Von Kuster <greg(a)bx.psu.edu>
date: Sun Sep 20 11:48:51 2009 -0400
description:
Template fixes: get current FormDefinition when inheriting templates, and use filter then retrieving FormDeinition for library templates. A few other miscellaneous bug fixes as well. Functional tests should now pass.
7 file(s) affected in this change:
lib/galaxy/model/__init__.py
lib/galaxy/web/controllers/library.py
lib/galaxy/web/controllers/library_admin.py
lib/galaxy/web/controllers/library_dataset.py
templates/library/browse_library.mako
templates/library/new_dataset.mako
test/functional/test_security_and_libraries.py
diffs (247 lines):
diff -r 8cbdd73ab68c -r ebf68a725c09 lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py Sat Sep 19 00:25:14 2009 -0400
+++ b/lib/galaxy/model/__init__.py Sun Sep 20 11:48:51 2009 -0400
@@ -693,7 +693,10 @@
return None, inherited
def get_template_widgets( self, trans, get_contents=True ):
# See if we have any associated templates - the returned value for
- # inherited is not applicable at the library level
+ # inherited is not applicable at the library level. The get_contents
+ # param is passed by callers that are inheriting a template - these
+ # are usually new library datsets for which we want to include template
+ # fields on the upload form.
info_association, inherited = self.get_info_association()
if info_association:
template = info_association.template
@@ -738,10 +741,16 @@
return self.library_root[0].get_info_association( inherited=True )
return None, inherited
def get_template_widgets( self, trans, get_contents=True ):
- # See if we have any associated templates
+ # See if we have any associated templates. The get_contents
+ # param is passed by callers that are inheriting a template - these
+ # are usually new library datsets for which we want to include template
+ # fields on the upload form.
info_association, inherited = self.get_info_association()
if info_association:
- template = info_association.template
+ if inherited:
+ template = info_association.template.current.latest_form
+ else:
+ template = info_association.template
# See if we have any field contents, but only if the info_association was
# not inherited ( we do not want to display the inherited contents ).
if not inherited and get_contents:
@@ -881,10 +890,16 @@
return None, inherited
return self.library_dataset.folder.get_info_association( inherited=True )
def get_template_widgets( self, trans, get_contents=True ):
- # See if we have any associated templates
+ # See if we have any associated templatesThe get_contents
+ # param is passed by callers that are inheriting a template - these
+ # are usually new library datsets for which we want to include template
+ # fields on the upload form.
info_association, inherited = self.get_info_association()
if info_association:
- template = info_association.template
+ if inherited:
+ template = info_association.template.current.latest_form
+ else:
+ template = info_association.template
# See if we have any field contents, but only if the info_association was
# not inherited ( we do not want to display the inherited contents ).
if not inherited and get_contents:
diff -r 8cbdd73ab68c -r ebf68a725c09 lib/galaxy/web/controllers/library.py
--- a/lib/galaxy/web/controllers/library.py Sat Sep 19 00:25:14 2009 -0400
+++ b/lib/galaxy/web/controllers/library.py Sun Sep 20 11:48:51 2009 -0400
@@ -717,11 +717,21 @@
if trans.app.security_agent.can_add_library_item( user, roles, folder ) or \
( replace_dataset and trans.app.security_agent.can_modify_library_item( user, roles, replace_dataset ) ):
if params.get( 'new_dataset_button', False ):
+ # See if we have any inherited templates, but do not inherit contents.
+ info_association, inherited = folder.get_info_association( inherited=True )
+ if info_association:
+ template_id = str( info_association.template.id )
+ widgets = folder.get_template_widgets( trans, get_contents=False )
+ else:
+ template_id = None
+ widgets = []
upload_option = params.get( 'upload_option', 'upload_file' )
created_ldda_ids = trans.webapp.controllers[ 'library_dataset' ].upload_dataset( trans,
controller='library',
library_id=library_id,
folder_id=folder_id,
+ template_id=template_id,
+ widgets=widgets,
replace_dataset=replace_dataset,
**kwd )
if created_ldda_ids:
@@ -1049,6 +1059,17 @@
library_item_desc = 'library'
response_action = 'browse_library'
response_id = library_id
+ forms = get_all_forms( trans,
+ filter=dict( deleted=False ),
+ form_type=trans.app.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE )
+ if not forms:
+ msg = "There are no forms on which to base the template, so create a form and "
+ msg += "try again to add the information template to the %s." % library_item_desc
+ trans.response.send_redirect( web.url_for( controller='forms',
+ action='new',
+ new=True,
+ msg=msg,
+ messagetype='done' ) )
if params.get( 'add', False ):
if params.get( 'add_info_template_button', False ):
form = trans.app.model.FormDefinition.get( int( kwd[ 'form_id' ] ) )
@@ -1068,14 +1089,13 @@
id=response_id,
msg=msg,
message_type='done' ) )
- return trans.fill_template( '/library/select_info_template.mako',
+ return trans.fill_template( '/admin/library/select_info_template.mako',
library_item_name=library_item.name,
library_item_desc=library_item_desc,
library_id=library_id,
folder_id=folder_id,
ldda_id=ldda_id,
- forms=get_all_forms( trans, filter=dict(deleted=False),
- form_type=trans.app.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE ),
+ forms=forms,
msg=msg,
messagetype=messagetype )
@web.expose
diff -r 8cbdd73ab68c -r ebf68a725c09 lib/galaxy/web/controllers/library_admin.py
--- a/lib/galaxy/web/controllers/library_admin.py Sat Sep 19 00:25:14 2009 -0400
+++ b/lib/galaxy/web/controllers/library_admin.py Sun Sep 20 11:48:51 2009 -0400
@@ -429,11 +429,21 @@
ldatatypes = [ dtype_name for dtype_name, dtype_value in trans.app.datatypes_registry.datatypes_by_extension.iteritems() if dtype_value.allow_datatype_change ]
ldatatypes.sort()
if params.get( 'new_dataset_button', False ):
+ # See if we have any inherited templates, but do not inherit contents.
+ info_association, inherited = folder.get_info_association( inherited=True )
+ if info_association:
+ template_id = str( info_association.template.id )
+ widgets = folder.get_template_widgets( trans, get_contents=False )
+ else:
+ template_id = None
+ widgets = []
upload_option = params.get( 'upload_option', 'upload_file' )
created_ldda_ids = trans.webapp.controllers[ 'library_dataset' ].upload_dataset( trans,
controller='library_admin',
library_id=library_id,
folder_id=folder_id,
+ template_id=template_id,
+ widgets=widgets,
replace_dataset=replace_dataset,
**kwd )
if created_ldda_ids:
@@ -915,7 +925,9 @@
library_item_desc = 'library'
response_action = 'browse_library'
response_id = library_id
- forms = get_all_forms( trans, filter=dict(deleted=False) )
+ forms = get_all_forms( trans,
+ filter=dict( deleted=False ),
+ form_type=trans.app.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE )
if not forms:
msg = "There are no forms on which to base the template, so create a form and "
msg += "try again to add the information template to the %s." % library_item_desc
diff -r 8cbdd73ab68c -r ebf68a725c09 lib/galaxy/web/controllers/library_dataset.py
--- a/lib/galaxy/web/controllers/library_dataset.py Sat Sep 19 00:25:14 2009 -0400
+++ b/lib/galaxy/web/controllers/library_dataset.py Sun Sep 20 11:48:51 2009 -0400
@@ -203,16 +203,20 @@
err_redirect = False
# See if we have any template field contents
template_field_contents = []
- template = None
+ template_id = params.get( 'template_id', None )
folder = trans.app.model.LibraryFolder.get( folder_id )
- info_association, inherited = folder.get_info_association()
- if info_association:
- template = info_association.template
+ # We are inheriting the folder's info_association, so we did not
+ # receive any inherited contents, but we may have redirected here
+ # after the user entered template contents ( due to errors ).
+ if template_id:
+ template = trans.app.model.FormDefinition.get( template_id )
for field_index in range( len( template.fields ) ):
field_name = 'field_%i' % field_index
if params.get( field_name, False ):
field_value = util.restore_text( params.get( field_name, '' ) )
template_field_contents.append( field_value )
+ else:
+ template = None
if upload_option == 'upload_file' and data_file == '' and url_paste == '':
msg = 'Select a file, enter a URL or enter text'
err_redirect = True
diff -r 8cbdd73ab68c -r ebf68a725c09 templates/library/browse_library.mako
--- a/templates/library/browse_library.mako Sat Sep 19 00:25:14 2009 -0400
+++ b/templates/library/browse_library.mako Sun Sep 20 11:48:51 2009 -0400
@@ -226,15 +226,15 @@
<h2>Data Library “${library.name}”</h2>
<%
-can_add = trans.app.security_agent.can_add_library_item( user, roles, library )
-can_modify = trans.app.security_agent.can_modify_library_item( user, roles, library )
-can_manage = trans.app.security_agent.can_manage_library_item( user, roles, library )
+ can_add = trans.app.security_agent.can_add_library_item( user, roles, library )
+ can_modify = trans.app.security_agent.can_modify_library_item( user, roles, library )
+ can_manage = trans.app.security_agent.can_manage_library_item( user, roles, library )
%>
<ul class="manage-table-actions">
- %if can_add and not_deleted:
+ %if can_add:
<li>
- <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=library.root_folder.id )}"><span>Add datasets to this library</span></a>
+ <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=library.root_folder.id )}"><span>Add datasets to this data library</span></a>
</li>
<li>
<a class="action-button" href="${h.url_for( controller='library', action='folder', new=True, id=library.root_folder.id, library_id=library.id )}">Add a folder to this library</a>
@@ -246,7 +246,7 @@
<li><a class="action-button" href="${h.url_for( controller='library', action='library', information=True, id=library.id )}">View this library's information</a></li>
%endif
%if can_add and forms and not library.info_association:
- <a class="action-button" href="${h.url_for( controller='library', action='info_template', library_id=library.id, add=True )}">Add an information template to this library</a>
+ <a class="action-button" href="${h.url_for( controller='library', action='info_template', library_id=library.id, add=True )}">Add an information template to this data library</a>
%endif
%if can_manage:
<li><a class="action-button" href="${h.url_for( controller='library', action='library', permissions=True, id=library.id )}">Edit this library's permissions</a></li>
diff -r 8cbdd73ab68c -r ebf68a725c09 templates/library/new_dataset.mako
--- a/templates/library/new_dataset.mako Sat Sep 19 00:25:14 2009 -0400
+++ b/templates/library/new_dataset.mako Sun Sep 20 11:48:51 2009 -0400
@@ -169,9 +169,18 @@
</div>
</div>
<div style="clear: both"></div>
- <% folder = trans.app.model.LibraryFolder.get( folder_id ) %>
- %if upload_option == 'upload_file' and widgets:
- ${render_template_info( folder, library_id, widgets )}
+ %if widgets:
+ <p/>
+ %for i, field in enumerate( widgets ):
+ <div class="form-row">
+ <label>${field[ 'label' ]}</label>
+ ${field[ 'widget' ].get_html()}
+ <div class="toolParamHelp" style="clear: both;">
+ ${field[ 'helptext' ]}
+ </div>
+ <div style="clear: both"></div>
+ </div>
+ %endfor
%endif
<div class="form-row">
<input type="submit" class="primary-button" name="new_dataset_button" value="Upload to library"/>
diff -r 8cbdd73ab68c -r ebf68a725c09 test/functional/test_security_and_libraries.py
--- a/test/functional/test_security_and_libraries.py Sat Sep 19 00:25:14 2009 -0400
+++ b/test/functional/test_security_and_libraries.py Sun Sep 20 11:48:51 2009 -0400
@@ -488,7 +488,7 @@
.order_by( galaxy.model.FormDefinitionCurrent.table.c.create_time.desc() ) \
.all()
for fdc in fdcs:
- if form_name == fdc.latest_form.name:
+ if form_name == fdc.latest_form.name and form_type == fdc.latest_form.type:
form_one = fdc.latest_form
break
assert form_one is not None, 'Problem retrieving form named (%s) from the database' % form_name
1
0
21 Sep '09
details: http://www.bx.psu.edu/hg/galaxy/rev/8cbdd73ab68c
changeset: 2729:8cbdd73ab68c
user: Greg Von Kuster <greg(a)bx.psu.edu>
date: Sat Sep 19 00:25:14 2009 -0400
description:
Bug fixes, enhancements, code refactoring and re-introduction of functional tests for library templates.
- Fixed bug where exception was thrown when chosing a role in the admin view
- The contents of inherited templates will no longer be displayed in the inherited container
- Old versions of library datasets will not be displayed in the lbrary browser
- Added the job.traceback information to the dataset error report
- Moved the get_form_wigets method the forms.py to the FormDefinition class, renaming it to get_wigets
15 file(s) affected in this change:
lib/galaxy/model/__init__.py
lib/galaxy/web/controllers/admin.py
lib/galaxy/web/controllers/dataset.py
lib/galaxy/web/controllers/forms.py
lib/galaxy/web/controllers/library.py
lib/galaxy/web/controllers/library_admin.py
lib/galaxy/web/controllers/library_dataset.py
lib/galaxy/web/controllers/requests.py
lib/galaxy/web/controllers/requests_admin.py
templates/admin/library/browse_library.mako
templates/library/browse_library.mako
templates/library/new_dataset.mako
test/base/twilltestcase.py
test/functional/test_forms_and_requests.py
test/functional/test_security_and_libraries.py
diffs (1993 lines):
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/model/__init__.py
--- a/lib/galaxy/model/__init__.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/model/__init__.py Sat Sep 19 00:25:14 2009 -0400
@@ -14,6 +14,7 @@
from galaxy.datatypes.metadata import MetadataCollection
from galaxy.security import RBACAgent, get_permitted_actions
from galaxy.util.hash_util import *
+from galaxy.web.form_builder import *
import logging
log = logging.getLogger( __name__ )
@@ -686,10 +687,23 @@
self.name = name or "Unnamed library"
self.description = description
self.root_folder = root_folder
- def get_info_association( self, restrict=False ):
+ def get_info_association( self, restrict=False, inherited=False ):
if self.info_association:
- return self.info_association[0]
- return None
+ return self.info_association[0], inherited
+ return None, inherited
+ def get_template_widgets( self, trans, get_contents=True ):
+ # See if we have any associated templates - the returned value for
+ # inherited is not applicable at the library level
+ info_association, inherited = self.get_info_association()
+ if info_association:
+ template = info_association.template
+ if get_contents:
+ # See if we have any field contents
+ info = info_association.info
+ if info:
+ return template.get_widgets( trans.user, contents=info.content )
+ return template.get_widgets( trans.user )
+ return []
class LibraryFolder( object ):
def __init__( self, name=None, description=None, item_count=0, order_id=None ):
@@ -708,19 +722,35 @@
folder.parent_id = self.id
folder.order_id = self.item_count
self.item_count += 1
- def get_info_association( self, restrict=False ):
+ def get_info_association( self, restrict=False, inherited=False ):
# If restrict is True, we will return this folder's info_association, not inheriting.
# If restrict is False, we'll return the next available info_association in the
- # inheritable hierarchy
+ # inheritable hierarchy. True is also returned if the info_association was inherited,
+ # and False if not. This enables us to eliminate displaying the any contents of the inherited
+ # template.
if self.info_association:
- return self.info_association[0]
+ return self.info_association[0], inherited
if restrict:
- return None
+ return None, inherited
if self.parent:
- return self.parent.get_info_association()
+ return self.parent.get_info_association( inherited=True )
if self.library_root:
- return self.library_root[0].get_info_association()
- return None
+ return self.library_root[0].get_info_association( inherited=True )
+ return None, inherited
+ def get_template_widgets( self, trans, get_contents=True ):
+ # See if we have any associated templates
+ info_association, inherited = self.get_info_association()
+ if info_association:
+ template = info_association.template
+ # See if we have any field contents, but only if the info_association was
+ # not inherited ( we do not want to display the inherited contents ).
+ if not inherited and get_contents:
+ info = info_association.info
+ if info:
+ return template.get_widgets( trans.user, info.content )
+ else:
+ return template.get_widgets( trans.user )
+ return []
@property
def active_library_datasets( self ):
# This needs to be a list
@@ -839,15 +869,31 @@
return ldda
def clear_associated_files( self, metadata_safe = False, purge = False ):
return
- def get_info_association( self, restrict=False ):
+ def get_info_association( self, restrict=False, inherited=False ):
# If restrict is True, we will return this ldda's info_association whether it
# exists or not. If restrict is False, we'll return the next available info_association
- # in the inheritable hierarchy
+ # in the inheritable hierarchy. True is also returned if the info_association was inherited,
+ # and False if not. This enables us to eliminate displaying the any contents of the inherited
+ # template.
if self.info_association:
- return self.info_association[0]
+ return self.info_association[0], inherited
if restrict:
- return None
- return self.library_dataset.folder.get_info_association()
+ return None, inherited
+ return self.library_dataset.folder.get_info_association( inherited=True )
+ def get_template_widgets( self, trans, get_contents=True ):
+ # See if we have any associated templates
+ info_association, inherited = self.get_info_association()
+ if info_association:
+ template = info_association.template
+ # See if we have any field contents, but only if the info_association was
+ # not inherited ( we do not want to display the inherited contents ).
+ if not inherited and get_contents:
+ info = info_association.info
+ if info:
+ return template.get_widgets( trans.user, info.content )
+ else:
+ return template.get_widgets( trans.user )
+ return []
class LibraryInfoAssociation( object ):
def __init__( self, library, form_definition, info ):
@@ -1030,6 +1076,62 @@
if f['layout'] == str(layout_index):
fields_dict[i] = f
return fields_dict
+ def get_widgets( self, user, contents=[], **kwd ):
+ '''
+ Return the list of widgets that comprise a form definition,
+ including field contents if any.
+ '''
+ params = util.Params( kwd )
+ widgets = []
+ for index, field in enumerate( self.fields ):
+ field_name = 'field_%i' % index
+ # determine the value of the field
+ if field_name in kwd:
+ # the user had already filled out this field and the same form is re-rendered
+ # due to some reason like required fields have been left out.
+ if field[ 'type' ] == 'CheckboxField':
+ value = CheckboxField.is_checked( util.restore_text( params.get( field_name, False ) ) )
+ else:
+ value = util.restore_text( params.get( field_name, '' ) )
+ elif contents:
+ # this field has a saved value
+ value = str( contents[ index ] )
+ else:
+ # if none of the above, then leave the field empty
+ if field[ 'type' ] == 'CheckboxField':
+ # Since we do not have contents, set checkbox value to False
+ value = False
+ else:
+ # Set other field types to empty string
+ value = ''
+ # create the field widget
+ field_widget = eval( field[ 'type' ] )( field_name )
+ if field[ 'type' ] == 'TextField':
+ field_widget.set_size( 40 )
+ field_widget.value = value
+ elif field[ 'type' ] == 'TextArea':
+ field_widget.set_size( 3, 40 )
+ field_widget.value = value
+ elif field['type'] == 'AddressField':
+ field_widget.user = user
+ field_widget.value = value
+ field_widget.params = params
+ elif field[ 'type' ] == 'SelectField':
+ for option in field[ 'selectlist' ]:
+ if option == value:
+ field_widget.add_option( option, option, selected=True )
+ else:
+ field_widget.add_option( option, option )
+ elif field[ 'type' ] == 'CheckboxField':
+ field_widget.checked = value
+ if field[ 'required' ] == 'required':
+ req = 'Required'
+ else:
+ req = 'Optional'
+ widgets.append( dict( label=field[ 'label' ],
+ widget=field_widget,
+ helptext='%s (%s)' % ( field[ 'helptext' ], req ) ) )
+ return widgets
class FormDefinitionCurrent( object ):
def __init__(self, form_definition=None):
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/web/controllers/admin.py
--- a/lib/galaxy/web/controllers/admin.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/web/controllers/admin.py Sat Sep 19 00:25:14 2009 -0400
@@ -3,7 +3,6 @@
from galaxy import util, datatypes
from galaxy.web.base.controller import *
from galaxy.model.orm import *
-from galaxy.web.controllers.forms import get_all_forms, get_form_widgets
from galaxy.web.framework.helpers import time_ago, iff, grids
import logging
log = logging.getLogger( __name__ )
@@ -242,7 +241,7 @@
# whose DatasetPermissions is associated with the Role
# [ ( LibraryDatasetDatasetAssociation [ action, action ] ) ]
library_dataset_actions = {}
- for dp in role.actions:
+ for dp in role.dataset_actions:
for ldda in trans.app.model.LibraryDatasetDatasetAssociation \
.filter( trans.app.model.LibraryDatasetDatasetAssociation.dataset_id==dp.dataset_id ) \
.all():
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/web/controllers/dataset.py
--- a/lib/galaxy/web/controllers/dataset.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/web/controllers/dataset.py Sat Sep 19 00:25:14 2009 -0400
@@ -35,6 +35,9 @@
-----------------------------------------------------------------------------
job info:
${info}
+-----------------------------------------------------------------------------
+job traceback:
+${traceback}
-----------------------------------------------------------------------------
(This is an automated message).
"""
@@ -76,6 +79,7 @@
tool_id=job.tool_id,
stderr=job.stderr,
stdout=job.stdout,
+ traceback=job.traceback,
info=job.info ) )
frm = to_address
# Check email a bit
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/web/controllers/forms.py
--- a/lib/galaxy/web/controllers/forms.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/web/controllers/forms.py Sat Sep 19 00:25:14 2009 -0400
@@ -500,10 +500,6 @@
Return all the latest forms from the form_definition_current table
if all_versions is set to True. Otherwise return all the versions
of all the forms from the form_definition table.
-
- TODO: when we add the concept of a form_definition_type ( e.g.,
- 'request_header', 'request_sample', 'library_template' ), filter
- the query if received filter is not None.
'''
if all_versions:
return trans.app.model.FormDefinition.query().all()
@@ -515,64 +511,3 @@
return [ fdc.latest_form for fdc in fdc_list ]
else:
return [ fdc.latest_form for fdc in fdc_list if fdc.latest_form.type == form_type ]
-
-
-
-def get_form_widgets( trans, form, contents=[], user=None, **kwd ):
- '''
- Return the list of widgets that comprise a form definition,
- including field contents if any.
- '''
- params = util.Params( kwd )
- if not user:
- user = trans.user
- widgets = []
- for index, field in enumerate( form.fields ):
- field_name = 'field_%i' % index
- # determine the value of the field
- if field_name in kwd:
- # the user had already filled out this field and the same form is re-rendered
- # due to some reason like required fields have been left out.
- if field[ 'type' ] == 'CheckboxField':
- value = CheckboxField.is_checked( util.restore_text( params.get( field_name, False ) ) )
- else:
- value = util.restore_text( params.get( field_name, '' ) )
- elif contents:
- # this field has a saved value
- value = str(contents[ index ])
- else:
- # if none of the above, then leave the field empty
- if field[ 'type' ] == 'CheckboxField':
- # Since we do not have contents, set checkbox value to False
- value = False
- else:
- # Set other field types to empty string
- value = ''
- # create the field widget
- field_widget = eval( field[ 'type' ] )( field_name )
- if field[ 'type' ] == 'TextField':
- field_widget.set_size( 40 )
- field_widget.value = value
- elif field[ 'type' ] == 'TextArea':
- field_widget.set_size( 3, 40 )
- field_widget.value = value
- elif field['type'] == 'AddressField':
- field_widget.user = user
- field_widget.value = value
- field_widget.params = params
- elif field[ 'type' ] == 'SelectField':
- for option in field[ 'selectlist' ]:
- if option == value:
- field_widget.add_option( option, option, selected=True )
- else:
- field_widget.add_option( option, option )
- elif field[ 'type' ] == 'CheckboxField':
- field_widget.checked = value
- if field[ 'required' ] == 'required':
- req = 'Required'
- else:
- req = 'Optional'
- widgets.append( dict( label=field[ 'label' ],
- widget=field_widget,
- helptext='%s (%s)' % ( field[ 'helptext' ], req ) ) )
- return widgets
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/web/controllers/library.py
--- a/lib/galaxy/web/controllers/library.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/web/controllers/library.py Sat Sep 19 00:25:14 2009 -0400
@@ -3,7 +3,7 @@
from galaxy.datatypes import sniff
from galaxy import util
from galaxy.util.odict import odict
-from galaxy.web.controllers.forms import get_all_forms, get_form_widgets
+from galaxy.web.controllers.forms import get_all_forms
from galaxy.util.streamball import StreamBall
import logging, tempfile, zipfile, tarfile, os, sys
@@ -149,16 +149,7 @@
messagetype='error' ) )
if action == 'information':
# See if we have any associated templates
- if library.info_association:
- template = library.info_association[0].template
- # See if we have any field contents
- info = library.info_association[0].info
- if info:
- widgets = get_form_widgets( trans, template, info.content )
- else:
- widgets = get_form_widgets( trans, template )
- else:
- widgets = []
+ widgets = library.get_template_widgets( trans )
if params.get( 'rename_library_button', False ):
old_name = library.name
new_name = util.restore_text( params.name )
@@ -479,17 +470,7 @@
msg=util.sanitize_text( msg ),
messagetype='error' ) )
# See if we have any associated templates
- info_association = ldda.get_info_association()
- if info_association:
- template = info_association.template
- # See if we have any field contents
- info = info_association.info
- if info:
- widgets = get_form_widgets( trans, template, info.content )
- else:
- widgets = get_form_widgets( trans, template )
- else:
- widgets = []
+ widgets = ldda.get_template_widgets( trans )
if action == 'permissions':
if params.get( 'update_roles_button', False ):
# The user clicked the Save button on the 'Associate With Roles' form
@@ -782,6 +763,8 @@
msg=util.sanitize_text( msg ),
messagetype='error' ) )
if not id or replace_dataset:
+ # See if we have any inherited templates, but do not inherit contents.
+ widgets = folder.get_template_widgets( trans, get_contents=False )
upload_option = params.get( 'upload_option', 'upload_file' )
# No dataset(s) specified, so display the upload form. Send list of data formats to the form
# so the "extension" select list can be populated dynamically
@@ -806,6 +789,7 @@
last_used_build=last_used_build,
roles=roles,
history=history,
+ widgets=widgets,
msg=msg,
messagetype=messagetype,
replace_dataset=replace_dataset )
@@ -968,17 +952,7 @@
messagetype=messagetype )
elif action == 'information':
# See if we have any associated templates
- info_association = folder.get_info_association()
- if info_association:
- template = info_association.template
- # See if we have any field contents
- info = info_association.info
- if info:
- widgets = get_form_widgets( trans, template, info.content )
- else:
- widgets = get_form_widgets( trans, template )
- else:
- widgets = []
+ widgets = folder.get_template_widgets( trans )
if params.get( 'rename_folder_button', False ):
if trans.app.security_agent.can_modify_library_item( user, roles, folder ):
old_name = folder.name
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/web/controllers/library_admin.py
--- a/lib/galaxy/web/controllers/library_admin.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/web/controllers/library_admin.py Sat Sep 19 00:25:14 2009 -0400
@@ -2,7 +2,7 @@
from galaxy import util
from galaxy.web.base.controller import *
from galaxy.model.orm import *
-from galaxy.web.controllers.forms import get_all_forms, get_form_widgets
+from galaxy.web.controllers.forms import get_all_forms
# Older py compatibility
try:
set()
@@ -96,17 +96,7 @@
return trans.fill_template( '/admin/library/new_library.mako', msg=msg, messagetype=messagetype )
elif action == 'information':
# See if we have any associated templates
- info_association = library.get_info_association()
- if info_association:
- template = info_association.template
- # See if we have any field contents
- info = info_association.info
- if info:
- widgets = get_form_widgets( trans, template, info.content )
- else:
- widgets = get_form_widgets( trans, template )
- else:
- widgets = []
+ widgets = library.get_template_widgets( trans )
if params.get( 'rename_library_button', False ):
old_name = library.name
new_name = util.restore_text( params.name )
@@ -293,17 +283,7 @@
messagetype=messagetype )
elif action == 'information':
# See if we have any associated templates
- info_association = folder.get_info_association()
- if info_association:
- template = info_association.template
- # See if we have any field contents
- info = info_association.info
- if info:
- widgets = get_form_widgets( trans, template, info.content )
- else:
- widgets = get_form_widgets( trans, template )
- else:
- widgets = []
+ widgets = folder.get_template_widgets( trans )
if params.get( 'rename_folder_button', False ):
old_name = folder.name
new_name = util.restore_text( params.name )
@@ -478,13 +458,8 @@
msg=util.sanitize_text( msg ),
messagetype=messagetype ) )
elif not id or replace_dataset:
- # See if we have any associated templates
- info_association = folder.get_info_association()
- if info_association:
- template = info_association.template
- widgets = get_form_widgets( trans, template )
- else:
- widgets = []
+ # See if we have any inherited templates, but do not inherit contents.
+ widgets = folder.get_template_widgets( trans, get_contents=False )
upload_option = params.get( 'upload_option', 'upload_file' )
# No dataset(s) specified, so display the upload form. Send list of data formats to the form
# so the "extension" select list can be populated dynamically
@@ -536,17 +511,7 @@
msg=util.sanitize_text( msg ),
messagetype='error' ) )
# See if we have any associated templates
- info_association = ldda.get_info_association()
- if info_association:
- template = info_association.template
- # See if we have any field contents
- info = info_association.info
- if info:
- widgets = get_form_widgets( trans, template, info.content )
- else:
- widgets = get_form_widgets( trans, template )
- else:
- widgets = []
+ widgets = ldda.get_template_widgets( trans )
if action == 'permissions':
if params.get( 'update_roles_button', False ):
permissions = {}
@@ -1019,8 +984,9 @@
# Since information templates are inherited, the template fields can be displayed on the information
# page for a folder or library dataset when it has no info_association object. If the user has added
# field contents on an inherited template via a parent's info_association, we'll need to create a new
- # form_values and info_association for the current object.
- info_association = library_item.get_info_association( restrict=True )
+ # form_values and info_association for the current object. The value for the returned inherited variable
+ # is not applicable at this level.
+ info_association, inherited = library_item.get_info_association( restrict=True )
if info_association:
template = info_association.template
info = info_association.info
@@ -1031,7 +997,7 @@
form_values.flush()
else:
# Inherit the next available info_association so we can get the template
- info_association = library_item.get_info_association()
+ info_association, inherited = library_item.get_info_association()
template = info_association.template
# Create a new FormValues object
form_values = trans.app.model.FormValues( template, field_contents )
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/web/controllers/library_dataset.py
--- a/lib/galaxy/web/controllers/library_dataset.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/web/controllers/library_dataset.py Sat Sep 19 00:25:14 2009 -0400
@@ -205,7 +205,7 @@
template_field_contents = []
template = None
folder = trans.app.model.LibraryFolder.get( folder_id )
- info_association = folder.get_info_association()
+ info_association, inherited = folder.get_info_association()
if info_association:
template = info_association.template
for field_index in range( len( template.fields ) ):
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/web/controllers/requests.py
--- a/lib/galaxy/web/controllers/requests.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/web/controllers/requests.py Sat Sep 19 00:25:14 2009 -0400
@@ -9,7 +9,6 @@
from galaxy.web.form_builder import *
from datetime import datetime, timedelta
from cgi import escape, FieldStorage
-from galaxy.web.controllers.forms import get_form_widgets
log = logging.getLogger( __name__ )
@@ -480,7 +479,7 @@
libraries[ library ] = hidden_folder_ids
libui = self.__library_ui(libraries, **kwd)
widgets = widgets + libui
- widgets = widgets + get_form_widgets(trans, request_type.request_form, contents=[], **kwd)
+ widgets = widgets + request_type.request_form.get_widgets( user, **kwd )
return trans.fill_template( '/requests/new_request.mako',
select_request_type=select_request_type,
request_type=request_type,
@@ -722,7 +721,7 @@
libraries[ library ] = hidden_folder_ids
libui = self.__library_ui(libraries, request, **kwd)
widgets = widgets + libui
- widgets = widgets + get_form_widgets(trans, request.type.request_form, request.values.content, **kwd)
+ widgets = widgets + request.type.request_form.get_widgets( user, request.values.content, **kwd )
return trans.fill_template( '/requests/edit_request.mako',
select_request_type=select_request_type,
request_type=request.type,
diff -r 9d615c906e6c -r 8cbdd73ab68c lib/galaxy/web/controllers/requests_admin.py
--- a/lib/galaxy/web/controllers/requests_admin.py Fri Sep 18 22:41:11 2009 -0400
+++ b/lib/galaxy/web/controllers/requests_admin.py Sat Sep 19 00:25:14 2009 -0400
@@ -7,7 +7,6 @@
import logging, tempfile, zipfile, tarfile, os, sys
from galaxy.web.form_builder import *
from datetime import datetime, timedelta
-from galaxy.web.controllers.forms import get_form_widgets
from galaxy.web.controllers.forms import get_all_forms
log = logging.getLogger( __name__ )
@@ -178,7 +177,7 @@
# libraries selectbox
libui = self.__library_ui(trans, request.user, request, **kwd)
widgets = widgets + libui
- widgets = widgets + get_form_widgets(trans, request.type.request_form, request.values.content, request.user, **kwd)
+ widgets = widgets + request.type.request_form.get_widgets( request.user, request.values.content, **kwd )
return trans.fill_template( '/admin/requests/edit_request.mako',
select_request_type=select_request_type,
request_type=request.type,
@@ -687,7 +686,7 @@
# libraries selectbox
libui = self.__library_ui(trans, user, **kwd)
widgets = widgets + libui
- widgets = widgets + get_form_widgets(trans, request_type.request_form, contents=[], user=user, **kwd)
+ widgets = widgets + request_type.request_form.get_widgets( user, **kwd )
return trans.fill_template( '/admin/requests/new_request.mako',
select_request_type=select_request_type,
request_type=request_type,
diff -r 9d615c906e6c -r 8cbdd73ab68c templates/admin/library/browse_library.mako
--- a/templates/admin/library/browse_library.mako Fri Sep 18 22:41:11 2009 -0400
+++ b/templates/admin/library/browse_library.mako Sat Sep 19 00:25:14 2009 -0400
@@ -85,48 +85,48 @@
else:
current_version = False
%>
- <div class="historyItemWrapper historyItem historyItem-${ldda.state}" id="libraryItem-${ldda.id}">
- ## Header row for library items (name, state, action buttons)
- <div class="historyItemTitleBar">
- <table cellspacing="0" cellpadding="0" border="0" width="100%">
- <tr>
- <td width="*">
- %if selected:
- <input type="checkbox" name="ldda_ids" value="${ldda.id}" checked/>
- %else:
- <input type="checkbox" name="ldda_ids" value="${ldda.id}"/>
- %endif
- <span class="libraryItemDeleted-${ldda.deleted}">
- <a href="${h.url_for( controller='library_admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, info=True, deleted=deleted, show_deleted=show_deleted )}"><b>${ldda.name[:50]}</b></a>
- </span>
- <a id="dataset-${ldda.id}-popup" class="popup-arrow" style="display: none;">▼</a>
- %if not library.deleted and not folder.deleted and not library_dataset.deleted:
- <div popupmenu="dataset-${ldda.id}-popup">
- <a class="action-button" href="${h.url_for( controller='library_admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, edit_info=True )}">Edit this dataset's information</a>
- ## We're disabling the ability to add templates at the LDDA and LibraryDataset level, but will leave this here for possible future use
- ##<a class="action-button" href="${h.url_for( controller='library_admin', action='info_template', library_id=library.id, library_dataset_id=library_dataset.id, new_template=True )}">Add an information template to this dataset</a>
- <a class="action-button" href="${h.url_for( controller='library_admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, permissions=True )}">Edit this dataset's permissions</a>
- %if current_version:
+ %if current_version:
+ <div class="historyItemWrapper historyItem historyItem-${ldda.state}" id="libraryItem-${ldda.id}">
+ ## Header row for library items (name, state, action buttons)
+ <div class="historyItemTitleBar">
+ <table cellspacing="0" cellpadding="0" border="0" width="100%">
+ <tr>
+ <td width="*">
+ %if selected:
+ <input type="checkbox" name="ldda_ids" value="${ldda.id}" checked/>
+ %else:
+ <input type="checkbox" name="ldda_ids" value="${ldda.id}"/>
+ %endif
+ <span class="libraryItemDeleted-${ldda.deleted}">
+ <a href="${h.url_for( controller='library_admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, info=True, deleted=deleted, show_deleted=show_deleted )}"><b>${ldda.name[:50]}</b></a>
+ </span>
+ <a id="dataset-${ldda.id}-popup" class="popup-arrow" style="display: none;">▼</a>
+ %if not library.deleted and not folder.deleted and not library_dataset.deleted:
+ <div popupmenu="dataset-${ldda.id}-popup">
+ <a class="action-button" href="${h.url_for( controller='library_admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, edit_info=True )}">Edit this dataset's information</a>
+ ## We're disabling the ability to add templates at the LDDA and LibraryDataset level, but will leave this here for possible future use
+ ##<a class="action-button" href="${h.url_for( controller='library_admin', action='info_template', library_id=library.id, library_dataset_id=library_dataset.id, new_template=True )}">Add an information template to this dataset</a>
+ <a class="action-button" href="${h.url_for( controller='library_admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, permissions=True )}">Edit this dataset's permissions</a>
<a class="action-button" href="${h.url_for( controller='library_admin', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, replace_id=library_dataset.id )}">Upload a new version of this dataset</a>
- %endif
- %if ldda.has_data:
- <a class="action-button" href="${h.url_for( controller='library_admin', action='download_dataset_from_folder', id=ldda.id, library_id=library.id )}">Download this dataset</a>
- %endif
- <a class="action-button" confirm="Click OK to delete dataset '${ldda.name}'." href="${h.url_for( controller='library_admin', action='delete_library_item', library_id=library.id, library_item_id=library_dataset.id, library_item_type='library_dataset' )}">Delete this dataset</a>
- </div>
- %elif not library.deleted and not folder.deleted and library_dataset.deleted:
- <div popupmenu="dataset-${ldda.id}-popup">
- <a class="action-button" href="${h.url_for( controller='library_admin', action='undelete_library_item', library_id=library.id, library_item_id=library_dataset.id, library_item_type='library_dataset' )}">Undelete this dataset</a>
- </div>
- %endif
- </td>
- <td width="300">${ldda.message}</td>
- <td width="150">${uploaded_by}</td>
- <td width="60">${ldda.create_time.strftime( "%Y-%m-%d" )}</td>
- </tr>
- </table>
+ %if ldda.has_data:
+ <a class="action-button" href="${h.url_for( controller='library_admin', action='download_dataset_from_folder', id=ldda.id, library_id=library.id )}">Download this dataset</a>
+ %endif
+ <a class="action-button" confirm="Click OK to delete dataset '${ldda.name}'." href="${h.url_for( controller='library_admin', action='delete_library_item', library_id=library.id, library_item_id=library_dataset.id, library_item_type='library_dataset' )}">Delete this dataset</a>
+ </div>
+ %elif not library.deleted and not folder.deleted and library_dataset.deleted:
+ <div popupmenu="dataset-${ldda.id}-popup">
+ <a class="action-button" href="${h.url_for( controller='library_admin', action='undelete_library_item', library_id=library.id, library_item_id=library_dataset.id, library_item_type='library_dataset' )}">Undelete this dataset</a>
+ </div>
+ %endif
+ </td>
+ <td width="300">${ldda.message}</td>
+ <td width="150">${uploaded_by}</td>
+ <td width="60">${ldda.create_time.strftime( "%Y-%m-%d" )}</td>
+ </tr>
+ </table>
+ </div>
</div>
- </div>
+ %endif
</%def>
<%def name="render_folder( folder, folder_pad, deleted, show_deleted, created_ldda_ids, library_id, root_folder=False )">
diff -r 9d615c906e6c -r 8cbdd73ab68c templates/library/browse_library.mako
--- a/templates/library/browse_library.mako Fri Sep 18 22:41:11 2009 -0400
+++ b/templates/library/browse_library.mako Sat Sep 19 00:25:14 2009 -0400
@@ -91,52 +91,53 @@
uploaded_by = 'anonymous'
if ldda == library_dataset.library_dataset_dataset_association:
current_version = True
+ can_modify_library_dataset = trans.app.security_agent.can_modify_library_item( user, roles, library_dataset )
+ can_manage_library_dataset = trans.app.security_agent.can_manage_library_item( user, roles, library_dataset )
else:
current_version = False
- can_modify_library_dataset = trans.app.security_agent.can_modify_library_item( user, roles, library_dataset )
- can_manage_library_dataset = trans.app.security_agent.can_manage_library_item( user, roles, library_dataset )
%>
-
- <tr class="datasetRow"
- %if parent is not None:
- parent="${parent}"
- style="display: none;"
+ %if current_version:
+ <tr class="datasetRow"
+ %if parent is not None:
+ parent="${parent}"
+ style="display: none;"
+ %endif
+ >
+ <td style="padding-left: ${pad+20}px;">
+ %if selected:
+ <input type="checkbox" name="ldda_ids" value="${ldda.id}" checked/>
+ %else:
+ <input type="checkbox" name="ldda_ids" value="${ldda.id}"/>
+ %endif
+ <a href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, info=True )}"><b>${ldda.name[:60]}</b></a>
+ <a id="dataset-${ldda.id}-popup" class="popup-arrow" style="display: none;">▼</a>
+ <div popupmenu="dataset-${ldda.id}-popup">
+ %if can_modify_library_dataset:
+ <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, edit_info=True )}">Edit this dataset's information</a>
+ %else:
+ <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, information=True )}">View this dataset's information</a>
+ %endif
+ %if can_manage_library_dataset:
+ <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, permissions=True )}">Edit this dataset's permissions</a>
+ %endif
+ %if can_modify_library_dataset:
+ <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, replace_id=library_dataset.id )}">Upload a new version of this dataset</a>
+ %endif
+ %if ldda.has_data:
+ <a class="action-button" href="${h.url_for( controller='library', action='datasets', library_id=library.id, ldda_ids=str( ldda.id ), do_action='add' )}">Import this dataset into your current history</a>
+ <a class="action-button" href="${h.url_for( controller='library', action='download_dataset_from_folder', id=ldda.id, library_id=library.id )}">Download this dataset</a>
+ %endif
+ </div>
+ </td>
+ <td>${ldda.message}</td>
+ <td>${uploaded_by}</td>
+ <td>${ldda.create_time.strftime( "%Y-%m-%d" )}</td>
+ </tr>
+ <%
+ my_row = row_counter.count
+ row_counter.increment()
+ %>
%endif
- >
- <td style="padding-left: ${pad+20}px;">
- %if selected:
- <input type="checkbox" name="ldda_ids" value="${ldda.id}" checked/>
- %else:
- <input type="checkbox" name="ldda_ids" value="${ldda.id}"/>
- %endif
- <a href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, info=True )}"><b>${ldda.name[:60]}</b></a>
- <a id="dataset-${ldda.id}-popup" class="popup-arrow" style="display: none;">▼</a>
- <div popupmenu="dataset-${ldda.id}-popup">
- %if can_modify_library_dataset:
- <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, edit_info=True )}">Edit this dataset's information</a>
- %else:
- <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, information=True )}">View this dataset's information</a>
- %endif
- %if can_manage_library_dataset:
- <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, id=ldda.id, permissions=True )}">Edit this dataset's permissions</a>
- %endif
- %if current_version and can_modify_library_dataset:
- <a class="action-button" href="${h.url_for( controller='library', action='library_dataset_dataset_association', library_id=library.id, folder_id=folder.id, replace_id=library_dataset.id )}">Upload a new version of this dataset</a>
- %endif
- %if ldda.has_data:
- <a class="action-button" href="${h.url_for( controller='library', action='datasets', library_id=library.id, ldda_ids=str( ldda.id ), do_action='add' )}">Import this dataset into your current history</a>
- <a class="action-button" href="${h.url_for( controller='library', action='download_dataset_from_folder', id=ldda.id, library_id=library.id )}">Download this dataset</a>
- %endif
- </div>
- </td>
- <td>${ldda.message}</td>
- <td>${uploaded_by}</td>
- <td>${ldda.create_time.strftime( "%Y-%m-%d" )}</td>
- </tr>
- <%
- my_row = row_counter.count
- row_counter.increment()
- %>
</%def>
<%def name="render_folder( folder, folder_pad, created_ldda_ids, library_id, hidden_folder_ids, parent=None, row_counter=None, root_folder=False )">
diff -r 9d615c906e6c -r 8cbdd73ab68c templates/library/new_dataset.mako
--- a/templates/library/new_dataset.mako Fri Sep 18 22:41:11 2009 -0400
+++ b/templates/library/new_dataset.mako Sat Sep 19 00:25:14 2009 -0400
@@ -170,7 +170,7 @@
</div>
<div style="clear: both"></div>
<% folder = trans.app.model.LibraryFolder.get( folder_id ) %>
- %if widgets:
+ %if upload_option == 'upload_file' and widgets:
${render_template_info( folder, library_id, widgets )}
%endif
<div class="form-row">
diff -r 9d615c906e6c -r 8cbdd73ab68c test/base/twilltestcase.py
--- a/test/base/twilltestcase.py Fri Sep 18 22:41:11 2009 -0400
+++ b/test/base/twilltestcase.py Sat Sep 19 00:25:14 2009 -0400
@@ -980,8 +980,6 @@
different scope in the tool) cannot be properly tested when they both exist at the
same time.
"""
- # TODO: RC: enhance this so that all supported field types can be passed in
- # and tested. If nothing is passed, all fields are TextField.
self.home()
self.visit_url( "%s/forms/new" % self.url )
self.check_page_for_string( 'Create a new form definition' )
@@ -1253,21 +1251,13 @@
self.check_page_for_string( check_str )
self.home()
def add_library_dataset( self, filename, library_id, folder_id, folder_name, file_format='auto',
- dbkey='hg18', roles=[], message='', root=False, check_template_str1='', check_template_str2='',
- check_template_str3='' ):
+ dbkey='hg18', roles=[], message='', root=False, template_field_name1='', template_field_contents1='' ):
"""Add a dataset to a folder"""
filename = self.get_filename( filename )
self.home()
self.visit_url( "%s/library_admin/library_dataset_dataset_association?upload_option=upload_file&library_id=%s&folder_id=%s&message=%s" % \
( self.url, library_id, folder_id, message ) )
self.check_page_for_string( 'Upload files' )
- # If we've been sent some template labels, make sure they are included in the upload form
- if check_template_str1:
- self.check_page_for_string( check_template_str1 )
- if check_template_str2:
- self.check_page_for_string( check_template_str2 )
- if check_template_str3:
- self.check_page_for_string( check_template_str3 )
tc.fv( "1", "folder_id", folder_id )
tc.formfile( "1", "file_data", filename )
tc.fv( "1", "file_format", file_format )
@@ -1275,6 +1265,9 @@
tc.fv( "1", "message", message.replace( '+', ' ' ) )
for role_id in roles:
tc.fv( "1", "roles", role_id ) # form field 7 is the select list named out_groups, note the buttons...
+ # Add template field contents, if any...
+ if template_field_name1:
+ tc.fv( "1", template_field_name1, template_field_contents1 )
tc.submit( "new_dataset_button" )
if root:
check_str = "Added 1 datasets to the library '%s' ( each is selected )." % folder_name
@@ -1347,7 +1340,7 @@
self.check_page_for_string( check_str )
self.home()
def upload_new_dataset_version( self, filename, library_id, folder_id, folder_name, library_dataset_id, ldda_name, file_format='auto',
- dbkey='hg18', message='', check_template_str1='', check_template_str2='', check_template_str3='' ):
+ dbkey='hg18', message='', template_field_name1='', template_field_contents1='' ):
"""Upload new version(s) of a dataset"""
self.home()
filename = self.get_filename( filename )
@@ -1356,40 +1349,32 @@
self.check_page_for_string( 'Upload files' )
self.check_page_for_string( 'You are currently selecting a new file to replace' )
self.check_page_for_string( ldda_name )
- # If we've been sent some template labels, make sure they are included in the upload form
- if check_template_str1:
- self.check_page_for_string( check_template_str1 )
- if check_template_str2:
- self.check_page_for_string( check_template_str2 )
- if check_template_str3:
- self.check_page_for_string( check_template_str3 )
tc.formfile( "1", "file_data", filename )
tc.fv( "1", "file_format", file_format )
tc.fv( "1", "dbkey", dbkey )
tc.fv( "1", "message", message.replace( '+', ' ' ) )
+ # Add template field contents, if any...
+ if template_field_name1:
+ tc.fv( "1", template_field_name1, template_field_contents1 )
tc.submit( "new_dataset_button" )
check_str = "Added 1 dataset versions to the library dataset '%s' in the folder '%s'." % ( ldda_name, folder_name )
self.check_page_for_string( check_str )
self.home()
def upload_new_dataset_versions( self, library_id, folder_id, folder_name, library_dataset_id, ldda_name, file_format='auto',
- dbkey='hg18', message='', check_template_str1='', check_template_str2='', check_template_str3='' ):
+ dbkey='hg18', message='', template_field_name1='', template_field_contents1='' ):
"""Upload new version(s) of a dataset using a directory of files"""
self.home()
self.visit_url( "%s/library_admin/library_dataset_dataset_association?upload_option=upload_directory&library_id=%s&folder_id=%s&replace_id=%s" \
% ( self.url, library_id, folder_id, library_dataset_id ) )
self.check_page_for_string( 'Upload a directory of files' )
self.check_page_for_string( 'You are currently selecting a new file to replace' )
- # If we've been sent some template labels, make sure they are included in the upload form
- if check_template_str1:
- self.check_page_for_string( check_template_str1 )
- if check_template_str2:
- self.check_page_for_string( check_template_str2 )
- if check_template_str3:
- self.check_page_for_string( check_template_str3 )
tc.fv( "1", "file_format", file_format )
tc.fv( "1", "dbkey", dbkey )
tc.fv( "1", "message", message.replace( '+', ' ' ) )
tc.fv( "1", "server_dir", "library" )
+ # Add template field contents, if any...
+ if template_field_name1:
+ tc.fv( "1", template_field_name1, template_field_contents1 )
tc.submit( "new_dataset_button" )
check_str = "Added 3 dataset versions to the library dataset '%s' in the folder '%s'." % ( ldda_name, folder_name )
self.check_page_for_string( check_str )
@@ -1406,19 +1391,12 @@
self.check_page_for_string( check_str )
self.home()
def add_dir_of_files_from_admin_view( self, library_id, folder_id, file_format='auto', dbkey='hg18', roles_tuple=[],
- message='', check_str_after_submit='', check_str1='', check_str2='', check_str3='' ):
+ message='', check_str_after_submit='', template_field_name1='', template_field_contents1='' ):
"""Add a directory of datasets to a folder"""
# roles is a list of tuples: [ ( role_id, role_description ) ]
self.home()
self.visit_url( "%s/library_admin/library_dataset_dataset_association?upload_option=upload_directory&library_id=%s&folder_id=%s" % ( self.url, library_id, folder_id ) )
self.check_page_for_string( 'Upload a directory of files' )
- # If we've been sent some template labels, make sure they are included in the upload form
- if check_str1:
- self.check_page_for_string( check_str1 )
- if check_str2:
- self.check_page_for_string( check_str2 )
- if check_str3:
- self.check_page_for_string( check_str3 )
tc.fv( "1", "folder_id", folder_id )
tc.fv( "1", "file_format", file_format )
tc.fv( "1", "dbkey", dbkey )
@@ -1426,24 +1404,20 @@
tc.fv( "1", "server_dir", "library" )
for role_tuple in roles_tuple:
tc.fv( "1", "roles", role_tuple[1] ) # role_tuple[1] is the role name
+ # Add template field contents, if any...
+ if template_field_name1:
+ tc.fv( "1", template_field_name1, template_field_contents1 )
tc.submit( "new_dataset_button" )
if check_str_after_submit:
self.check_page_for_string( check_str_after_submit )
self.home()
def add_dir_of_files_from_libraries_view( self, library_id, folder_id, selected_dir, file_format='auto', dbkey='hg18', roles_tuple=[],
- message='', check_str_after_submit='', check_str1='', check_str2='', check_str3='' ):
+ message='', check_str_after_submit='', template_field_name1='', template_field_contents1='' ):
"""Add a directory of datasets to a folder"""
# roles is a list of tuples: [ ( role_id, role_description ) ]
self.home()
self.visit_url( "%s/library/library_dataset_dataset_association?upload_option=upload_directory&library_id=%s&folder_id=%s" % ( self.url, library_id, folder_id ) )
self.check_page_for_string( 'Upload a directory of files' )
- # If we've been sent some template labels, make sure they are included in the upload form
- if check_str1:
- self.check_page_for_string( check_str1 )
- if check_str2:
- self.check_page_for_string( check_str2 )
- if check_str3:
- self.check_page_for_string( check_str3 )
tc.fv( "1", "folder_id", folder_id )
tc.fv( "1", "file_format", file_format )
tc.fv( "1", "dbkey", dbkey )
@@ -1451,6 +1425,9 @@
tc.fv( "1", "server_dir", selected_dir )
for role_tuple in roles_tuple:
tc.fv( "1", "roles", role_tuple[1] ) # role_tuple[1] is the role name
+ # Add template field contents, if any...
+ if template_field_name1:
+ tc.fv( "1", template_field_name1, template_field_contents1 )
tc.submit( "new_dataset_button" )
if check_str_after_submit:
self.check_page_for_string( check_str_after_submit )
diff -r 9d615c906e6c -r 8cbdd73ab68c test/functional/test_forms_and_requests.py
--- a/test/functional/test_forms_and_requests.py Fri Sep 18 22:41:11 2009 -0400
+++ b/test/functional/test_forms_and_requests.py Sat Sep 19 00:25:14 2009 -0400
@@ -41,7 +41,7 @@
global form_one_name
name = form_one_name
desc = "This is Form One's description"
- formtype = 'Sequencing Request Form'
+ formtype = galaxy.model.FormDefinition.types.REQUEST
self.create_form( name=name, desc=desc, formtype=formtype )
self.home()
self.visit_page( 'forms/manage' )
diff -r 9d615c906e6c -r 8cbdd73ab68c test/functional/test_security_and_libraries.py
--- a/test/functional/test_security_and_libraries.py Fri Sep 18 22:41:11 2009 -0400
+++ b/test/functional/test_security_and_libraries.py Sat Sep 19 00:25:14 2009 -0400
@@ -475,15 +475,23 @@
library_one.refresh()
self.rename_library( str( library_one.id ), library_one.name, name=name, description=description )
library_one.refresh()
- """
- def test_075_library_template_features( self ):
- Testing adding a template to a library, along with template features on the admin side
+ def test_075_library_template_features( self ):
+ """Testing adding a template to a library, then filling in the contents"""
# Make sure a form exists
- self.create_form( name='Form One', description='This is Form One' )
- current_form = galaxy.model.FormDefinitionCurrent.filter( galaxy.model.FormDefinitionCurrent.table.c.deleted==False ) \
- .order_by( desc( galaxy.model.FormDefinitionCurrent.table.c.create_time ) ).first()
+ form_name = 'Library template Form One'
+ form_desc = 'This is Form One'
+ form_type = galaxy.model.FormDefinition.types.LIBRARY_INFO_TEMPLATE
+ self.create_form( name=form_name, desc=form_desc, formtype=form_type )
global form_one
- form_one = current_form.latest_form
+ form_one = None
+ fdcs = galaxy.model.FormDefinitionCurrent.filter( galaxy.model.FormDefinitionCurrent.table.c.deleted==False ) \
+ .order_by( galaxy.model.FormDefinitionCurrent.table.c.create_time.desc() ) \
+ .all()
+ for fdc in fdcs:
+ if form_name == fdc.latest_form.name:
+ form_one = fdc.latest_form
+ break
+ assert form_one is not None, 'Problem retrieving form named (%s) from the database' % form_name
# Add a new information template to the library
template_name = 'Library Template 1'
self.add_library_info_template( str( library_one.id ),
@@ -491,32 +499,46 @@
str( form_one.id ),
form_one.name )
# Make sure the template fields are displayed on the library information page
- self.home()
+ field_dict = form_one.fields[ 0 ]
+ global form_one_field_label
+ form_one_field_label = '%s' % str( field_dict.get( 'label', 'Field 0' ) )
+ global form_one_field_help
+ form_one_field_help = '%s' % str( field_dict.get( 'helptext', 'Field 0 help' ) )
+ global form_one_field_required
+ form_one_field_required = '%s' % str( field_dict.get( 'required', 'optional' ) ).capitalize()
+ # Add information to the library using the template
+ global form_one_field_name
+ form_one_field_name = 'field_0'
+ contents = '%s library contents' % form_one_field_label
self.visit_url( '%s/library_admin/library?id=%s&information=True' % ( self.url, str( library_one.id ) ) )
- num_fields = len( form_one.fields )
- for index in range( num_fields ):
- label_check_str = form_one.fields[ index ][ 'label' ]
- help_check_str = form_one.fields[ index ][ 'helptext' ]
- required_check_str = form_one.fields[ index ][ 'required' ].capitalize()
- self.check_page_for_string( label_check_str )
- self.check_page_for_string( help_check_str )
- self.check_page_for_string( required_check_str )
- # Add information to the library using the template
- for index in range( num_fields ):
- field_name = 'field_%i' % index
- contents = '%s contents' % form_one.fields[ index ][ 'label' ]
- # There are 2 forms on this page and the template is the 2nd form
- tc.fv( '2', field_name, contents )
+ # There are 2 forms on this page and the template is the 2nd form
+ tc.fv( '2', form_one_field_name, contents )
tc.submit( 'edit_info_button' )
- self.check_page_for_string ( 'The information has been updated.' )
- self.home()
- # TODO: add more testing for full feature coverage
- """
- def test_080_add_public_dataset_to_root_folder( self ):
- """Testing adding a public dataset to the root folder"""
+ # For some reason, the following check:
+ # self.check_page_for_string ( 'The information has been updated.' )
+ # ...throws the following exception - I have not idea why!
+ # self.check_page_for_string ( 'The information has been updated.' )
+ # TypeError: 'str' object is not callable
+ # The work-around is to not make ANY self.check_page_for_string() calls until the next method
+ def test_080_edit_template_contents_admin_view( self ):
+ """Test editing template contents on the admin side"""
+ # First make sure the templlate contents from the previous method were correctly saved
+ contents = '%s library contents' % form_one_field_label
+ contents_edited = contents + ' edited'
+ self.visit_url( '%s/library_admin/library?id=%s&information=True' % ( self.url, str( library_one.id ) ) )
+ self.check_page_for_string( contents )
+ # Edit the contents and then save them
+ tc.fv( '2', form_one_field_name, contents_edited )
+ tc.submit( 'edit_info_button' )
+ self.check_page_for_string( 'The information has been updated.' )
+ self.check_page_for_string( contents_edited )
+ def test_085_add_public_dataset_to_root_folder( self ):
+ """Testing adding a public dataset to the root folder, making sure library template is inherited"""
actions = [ v.action for k, v in galaxy.model.Library.permitted_actions.items() ]
actions.sort()
message = 'Testing adding a public dataset to the root folder'
+ # The form_one template should be inherited to the library dataset upload form.
+ template_contents = "%s contents for root folder 1.bed" % form_one_field_label
self.add_library_dataset( '1.bed',
str( library_one.id ),
str( library_one.root_folder.id ),
@@ -524,7 +546,9 @@
file_format='bed',
dbkey='hg18',
message=message.replace( ' ', '+' ),
- root=True )
+ root=True,
+ template_field_name1=form_one_field_name,
+ template_field_contents1=template_contents )
global ldda_one
ldda_one = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
@@ -550,17 +574,11 @@
if not dp.action == galaxy.model.Dataset.permitted_actions.DATASET_MANAGE_PERMISSIONS.action:
raise AssertionError( 'The DatasetPermissions.action for dataset id %d is "%s", but it should be "manage permissions"' \
% ( ldda_one.dataset.id, dp.action ) )
- ## TODO: temporarily eliminating templates until we have the new forms features done
- # Make sure the library template was inherited by the ldda
- """
+ # Make sure the library template contents were correctly saved
self.home()
self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
( self.url, str( library_one.id ), str( library_one.root_folder.id ), str( ldda_one.id ) ) )
- self.check_page_for_string( 'wind' )
- self.check_page_for_string( 'This is the wind component' )
- self.check_page_for_string( 'bag' )
- self.check_page_for_string( 'This is the bag component' )
- """
+ self.check_page_for_string( template_contents )
# Make sure other users can access the dataset from the Libraries view
self.logout()
self.login( email=regular_user2.email )
@@ -570,23 +588,6 @@
self.logout()
self.login( email=admin_user.email )
self.home()
- """
- ## TODO: temporarily eliminating templates until we have the new forms features done
- def test_085_editing_dataset_information( self ):
- Testing editing dataset template element information
- # Need the current library_item_info_element.id
- last_library_item_info_element = galaxy.model.LibraryItemInfoElement.query() \
- .order_by( desc( galaxy.model.LibraryItemInfoElement.table.c.id ) ).first()
- global ldda_one_ele_2_field_name
- ldda_one_ele_2_field_name = "info_element_%s" % str( last_library_item_info_element.id )
- ele_2_contents = 'pipe'
- global ldda_one_ele_1_field_name
- ldda_one_ele_1_field_name = "info_element_%s" % ( str( last_library_item_info_element.id - 1 ) )
- ele_1_contents = 'blown'
- self.edit_ldda_template_element_info( str( library_one.id ), str( library_one.root_folder.id ), str( ldda_one.id ),
- ldda_one.name, ldda_one_ele_1_field_name, ele_1_contents, ldda_one_ele_2_field_name, ele_2_contents )
- self.home()
- """
def test_090_add_new_folder_to_root_folder( self ):
"""Testing adding a folder to a library root folder"""
root_folder = library_one.root_folder
@@ -602,42 +603,25 @@
self.visit_url( '%s/library_admin/browse_library?id=%s' % ( self.url, str( library_one.id ) ) )
self.check_page_for_string( name )
self.check_page_for_string( description )
- ## TODO: temporarily eliminating templates until we have the new forms features done
- # Make sure the library template is inherited
- """
self.home()
self.visit_url( '%s/library_admin/folder?id=%s&library_id=%s&information=True' % ( self.url, str( folder_one.id ), str( library_one.id ) ) )
- self.check_page_for_string( 'wind' )
- self.check_page_for_string( 'This is the wind component' )
- self.check_page_for_string( 'bag' )
- self.check_page_for_string( 'This is the bag component' )
- """
- self.home()
- """
- ## TODO: temporarily eliminating templates until we have the new forms features done
- def test_095_add_folder_template( self ):
- Testing adding a new folder template to a folder
- # Add a new information template to the folder
- template_name = 'Folder Template 1'
- ele_name_0 = 'Fu'
- ele_help_0 = 'This is the Fu component'.replace( ' ', '+' )
- ele_name_1 = 'Bar'
- ele_help_1 = 'This is the Bar component'.replace( ' ', '+' )
- self.home()
- self.add_folder_info_template( str( library_one.id ), library_one.name, str( folder_one.id ), folder_one.name,
- name=template_name, num_fields='2', ele_name_0=ele_name_0, ele_help_0=ele_help_0,
- ele_name_1=ele_name_1, ele_help_1=ele_help_1 )
- self.home()
- self.visit_url( '%s/library_admin/folder?id=%s&library_id=%s&information=True' % ( self.url, str( folder_one.id ), str( library_one.id ) ) )
- self.check_page_for_string( ele_name_0 )
- check_str = ele_help_0.replace( '+', ' ' )
- self.check_page_for_string( check_str )
- self.check_page_for_string( ele_name_1 )
- check_str = ele_help_1.replace( '+', ' ' )
- self.check_page_for_string( check_str )
- self.home()
- """
- def test_100_add_subfolder_to_folder( self ):
+ # Make sure the template was inherited
+ self.check_page_for_string( form_one_field_name )
+ # Make sure the template contents were NOT inherited
+ contents = '%s library contents' % form_one_field_label
+ try:
+ self.check_page_for_string( contents )
+ raise AssertionError, "Library level template contents were displayed in the folders inherited template fields"
+ except:
+ pass
+ # Add contents to the inherited template
+ template_contents = "%s contents for Folder One" % form_one_field_label
+ # There are 2 forms on this page and the template is the 2nd form
+ tc.fv( '2', form_one_field_name, template_contents )
+ tc.submit( 'edit_info_button' )
+ self.check_page_for_string( 'The information has been updated.' )
+ self.check_page_for_string( template_contents )
+ def test_095_add_subfolder_to_folder( self ):
"""Testing adding a folder to a library folder"""
name = "Folder One's Subfolder"
description = "This is the Folder One's subfolder"
@@ -651,101 +635,25 @@
self.visit_url( '%s/library_admin/browse_library?id=%s' % ( self.url, str( library_one.id ) ) )
self.check_page_for_string( name )
self.check_page_for_string( description )
- ## TODO: temporarily eliminating templates until we have the new forms features done
- # Make sure the parent folder's template is inherited
self.home()
- """
- self.visit_url( '%s/library_admin/folder?id=%s&library_id=%s&information=True' % ( self.url, str( folder_one.id ), str( library_one.id ) ) )
- self.check_page_for_string( 'Fu' )
- self.check_page_for_string( 'This is the Fu component' )
- self.check_page_for_string( 'Bar' )
- self.check_page_for_string( 'This is the Bar component' )
- # Make sure the library template is not inherited
+ self.visit_url( '%s/library_admin/folder?id=%s&library_id=%s&information=True' % ( self.url, str( subfolder_one.id ), str( library_one.id ) ) )
+ # Make sure the template was inherited
+ self.check_page_for_string( form_one_field_name )
+ # Make sure the template contents were NOT inherited
+ contents = "%s contents for Folder One" % form_one_field_label
try:
- self.check_page_for_string( 'wind' )
- raise AssertionError( 'Library template inherited by folder when it should not have been.' )
+ self.check_page_for_string( contents )
+ raise AssertionError, "Parent folder level template contents were displayed in the sub-folders inherited template fields"
except:
pass
- self.home()
- """
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
- def test_105_add_template_element( self ):
- Testing adding a new element to an existing library template
- library_one_template.refresh()
- element_ids = []
- for ele in library_one_template.elements:
- element_ids.append( ele.id )
- element_ids.sort()
-
- name = 'Library Template 1 renamed'
- ele_field_name_1 = "element_name_%s" % element_ids[0]
- ele_name_1 = 'wind'
- ele_field_desc_1 = "element_description_%s" % element_ids[0]
- ele_desc_1 = 'This is the wind component'
- ele_field_name_2 = "element_name_%s" % element_ids[1]
- ele_name_2 = 'bag'
- ele_field_desc_2 = "element_description_%s" % element_ids[1]
- ele_desc_2 = 'This is the bag component'
- new_ele_name = 'Fubar'
- new_ele_desc = 'This is the Fubar component'
- self.add_library_info_template_element( str( library_one.id ),
- str( library_one_template.id ),
- library_one_template.name,
- ele_field_name_1,
- ele_name_1,
- ele_field_desc_1,
- ele_desc_1,
- ele_field_name_2,
- ele_name_2,
- ele_field_desc_2,
- ele_desc_2,
- new_ele_name=new_ele_name,
- new_ele_desc=new_ele_desc )
- # Make sure the new template element shows up on the existing library info page
- self.home()
- self.visit_url( '%s/library_admin/library?id=%s&information=True' % ( self.url, str( library_one.id ) ) )
- self.check_page_for_string( library_one.name )
- self.check_page_for_string( library_one.description )
- self.check_page_for_string( 'wind' )
- self.check_page_for_string( 'hello' )
- self.check_page_for_string( 'This is the wind component' )
- self.check_page_for_string( 'bag' )
- self.check_page_for_string( 'world' )
- self.check_page_for_string( 'This is the bag component' )
- self.check_page_for_string( 'Fubar' )
- self.check_page_for_string( 'This is the Fubar component' )
- # Make sure the new template element does not show up on existing info pages for folder_one since it has its own template
- self.home()
- self.visit_url( '%s/library_admin/folder?id=%s&library_id=%s&information=True' % ( self.url, str( folder_one.id ), str( library_one.id ) ) )
- self.check_page_for_string( 'Fu' )
- self.check_page_for_string( 'This is the Fu component' )
- self.check_page_for_string( 'Bar' )
- self.check_page_for_string( 'This is the Bar component' )
- try:
- self.check_page_for_string( 'Fubar' )
- raise AssertionError( 'Changed library template inherited by folder "%s" when folder had an associated template of its own' )
- except:
- pass
- # Make sure the new template element shows up on existing info pages for ldda_one since it is contained in the root folder
- self.home()
- self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
- ( self.url, str( library_one.id ), str( folder_one.id ), str( ldda_one.id ) ) )
- # Visiting the above page will have resulted in the creation of a new LibraryItemInfoElement, so we'll retrieve it
- # for later use
- last_library_item_info_element = galaxy.model.LibraryItemInfoElement.query() \
- .order_by( desc( galaxy.model.LibraryItemInfoElement.table.c.id ) ).first()
- global ldda_one_ele_3_field_name
- ldda_one_ele_3_field_name = "info_element_%s" % str( last_library_item_info_element.id )
- self.check_page_for_string( 'wind' )
- self.check_page_for_string( 'This is the wind component' )
- self.check_page_for_string( 'bag' )
- self.check_page_for_string( 'This is the bag component' )
- self.check_page_for_string( 'Fubar' )
- self.check_page_for_string( 'This is the Fubar component' )
- self.home()
- """
- def test_110_add_2nd_new_folder_to_root_folder( self ):
+ # Add contents to the inherited template
+ template_contents = "%s contents for Folder One's Subfolder" % form_one_field_label
+ # There are 2 forms on this page and the template is the 2nd form
+ tc.fv( '2', form_one_field_name, template_contents )
+ tc.submit( 'edit_info_button' )
+ self.check_page_for_string( 'The information has been updated.' )
+ self.check_page_for_string( template_contents )
+ def test_100_add_2nd_new_folder_to_root_folder( self ):
"""Testing adding a 2nd folder to a library root folder"""
root_folder = library_one.root_folder
name = "Folder Two"
@@ -760,24 +668,24 @@
self.visit_url( '%s/library_admin/browse_library?id=%s' % ( self.url, str( library_one.id ) ) )
self.check_page_for_string( name )
self.check_page_for_string( description )
- ## TODO: temporarily eliminating templates until we have the new forms features done
- # Make sure the changed library template is inherited to the new folder
- """
self.home()
- self.visit_url( '%s/library_admin/folder?id=%s&library_id=%s&information=True' % ( self.url, str( folder_two.id ), str( library_one.id ) ) )
- self.check_page_for_string( 'wind' )
- self.check_page_for_string( 'This is the wind component' )
- self.check_page_for_string( 'bag' )
- self.check_page_for_string( 'This is the bag component' )
- self.check_page_for_string( 'Fubar' )
- self.check_page_for_string( 'This is the Fubar component' )
- """
- self.home()
- def test_115_add_public_dataset_to_root_folders_2nd_subfolder( self ):
+ self.visit_url( '%s/library_admin/folder?id=%s&library_id=%s&information=True' % ( self.url, str( subfolder_one.id ), str( library_one.id ) ) )
+ # Make sure the template was inherited
+ self.check_page_for_string( form_one_field_name )
+ # Make sure the template contents were NOT inherited
+ contents = '%s library contents' % form_one_field_label
+ try:
+ self.check_page_for_string( contents )
+ raise AssertionError, "Parent folder level template contents were displayed in the sub-folders inherited template fields"
+ except:
+ pass
+ def test_105_add_public_dataset_to_root_folders_2nd_subfolder( self ):
"""Testing adding a public dataset to the root folder's 2nd sub-folder"""
actions = [ v.action for k, v in galaxy.model.Library.permitted_actions.items() ]
actions.sort()
message = "Testing adding a public dataset to the folder named %s" % folder_two.name
+ # The form_one template should be inherited to the library dataset upload form.
+ template_contents = "%s contents for %s 2.bed" % ( form_one_field_label, folder_two.name )
self.add_library_dataset( '2.bed',
str( library_one.id ),
str( folder_two.id ),
@@ -785,7 +693,9 @@
file_format='bed',
dbkey='hg18',
message=message.replace( ' ', '+' ),
- root=False )
+ root=False,
+ template_field_name1=form_one_field_name,
+ template_field_contents1=template_contents )
global ldda_two
ldda_two = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
@@ -795,64 +705,18 @@
self.check_page_for_string( "2.bed" )
self.check_page_for_string( message )
self.check_page_for_string( admin_user.email )
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
- def test_120_add_template_to_root_folders_2nd_subfolder( self ):
- Testing adding a template to the root folder's 2nd sub-folder
- # Before adding the folder template, the inherited library template should be displayed
- self.home()
- self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
- ( self.url, str( library_one.id ), str( folder_two.id ), str( ldda_two.id ) ) )
- self.check_page_for_string( 'wind' )
- self.check_page_for_string( 'This is the wind component' )
- self.check_page_for_string( 'bag' )
- self.check_page_for_string( 'This is the bag component' )
- self.check_page_for_string( 'Fubar' )
- self.check_page_for_string( 'This is the Fubar component' )
- self.home()
- # Add a new folde template
- template_name = 'Folder 2 Template'
- ele_name_0 = 'kill'
- ele_help_0 = 'This is the kill component'.replace( ' ', '+' )
- ele_name_1 = 'bill'
- ele_help_1 = 'This is the bill component'.replace( ' ', '+' )
- self.home()
- self.add_folder_info_template( str( library_one.id ), library_one.name, str( folder_two.id ), folder_two.name,
- name=template_name, num_fields='2', ele_name_0=ele_name_0, ele_help_0=ele_help_0,
- ele_name_1=ele_name_1, ele_help_1=ele_help_1 )
- # Make sure the new template id displayed on the folder information page
- self.home()
- self.visit_url( '%s/library_admin/folder?id=%s&library_id=%s&information=True' % ( self.url, str( folder_two.id ), str( library_one.id ) ) )
- self.check_page_for_string( ele_name_0 )
- check_str = ele_help_0.replace( '+', ' ' )
- self.check_page_for_string( check_str )
- self.check_page_for_string( ele_name_1 )
- check_str = ele_help_1.replace( '+', ' ' )
- self.check_page_for_string( check_str )
- # The library dataset ldda_two had previously inherited the library template prior to the new folder template
- # being introduced, so the library template should still be displayed on the ldda information page
- self.home()
- self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
- ( self.url, str( library_one.id ), str( folder_two.id ), str( ldda_two.id ) ) )
- self.check_page_for_string( 'wind' )
- self.check_page_for_string( 'This is the wind component' )
- self.check_page_for_string( 'bag' )
- self.check_page_for_string( 'This is the bag component' )
- self.check_page_for_string( 'Fubar' )
- self.check_page_for_string( 'This is the Fubar component' )
- # Make sure the new folder template is not displayed
- try:
- self.check_page_for_string( 'kill' )
- raise AssertionError( 'New folder template elements incorrectly included in information page for ldda "%s"' % ldda_two.name )
- except:
- pass
- self.home()
- """
- def test_125_add_2nd_public_dataset_to_root_folders_2nd_subfolder( self ):
+ # Make sure the library template contents were correctly saved
+ self.home()
+ self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
+ ( self.url, str( library_one.id ), str( folder_two.id ), str( ldda_two.id ) ) )
+ self.check_page_for_string( template_contents )
+ def test_110_add_2nd_public_dataset_to_root_folders_2nd_subfolder( self ):
"""Testing adding a 2nd public dataset to the root folder's 2nd sub-folder"""
actions = [ v.action for k, v in galaxy.model.Library.permitted_actions.items() ]
actions.sort()
message = "Testing adding a 2nd public dataset to the folder named %s" % folder_two.name
+ # The form_one template should be inherited to the library dataset upload form.
+ template_contents = "%s contents for %s 3.bed" % ( form_one_field_label, folder_two.name )
self.add_library_dataset( '3.bed',
str( library_one.id ),
str( folder_two.id ),
@@ -860,7 +724,9 @@
file_format='bed',
dbkey='hg18',
message=message.replace( ' ', '+' ),
- root=False )
+ root=False,
+ template_field_name1=form_one_field_name,
+ template_field_contents1=template_contents )
global ldda_three
ldda_three = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
@@ -870,26 +736,12 @@
self.check_page_for_string( "3.bed" )
self.check_page_for_string( message )
self.check_page_for_string( admin_user.email )
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
- def test_130_editing_dataset_information_with_new_folder_template( self ):
- Testing editing dataset template element information with new inherited folder template
- # Need the current library_item_info_element.id
- last_library_item_info_element = galaxy.model.LibraryItemInfoElement.query() \
- .order_by( desc( galaxy.model.LibraryItemInfoElement.table.c.id ) ).first()
- # Make sure the changed inherited template is included in the ldda information
- ele_2_field_name = "info_element_%s" % str( last_library_item_info_element.id )
- ele_2_contents = 'II'
- ele_2_help = 'This is the bill component'
- ele_1_field_name = "info_element_%s" % ( str( last_library_item_info_element.id - 1 ) )
- ele_1_contents = 'Volume'
- ele_1_help = 'This is the kill component'
- self.edit_ldda_template_element_info( str( library_one.id ), str( folder_two.id ), str( ldda_three.id ),
- ldda_three.name, ele_1_field_name, ele_1_contents, ele_2_field_name, ele_2_contents,
- ele_1_help=ele_1_help, ele_2_help=ele_2_help )
- self.home()
- """
- def test_135_add_dataset_with_private_role_restriction_to_folder( self ):
+ # Make sure the library template contents were correctly saved
+ self.home()
+ self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
+ ( self.url, str( library_one.id ), str( folder_two.id ), str( ldda_three.id ) ) )
+ self.check_page_for_string( template_contents )
+ def test_115_add_dataset_with_private_role_restriction_to_folder( self ):
"""Testing adding a dataset with a private role restriction to a folder"""
# Add a dataset restricted by the following:
# DATASET_MANAGE_PERMISSIONS = "test(a)bx.psu.edu" via DefaultUserPermissions
@@ -905,10 +757,8 @@
# setting is useless if test(a)bx.psu.edu is not an admin. This should be corrected,
# by displaying a warning message on the permissions form.
message ='This is a test of the fourth dataset uploaded'
- ele_name_0 = 'Fu'
- ele_name_1 = 'Bar'
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
+ # The form_one template should be inherited to the library dataset upload form.
+ template_contents = "%s contents for %s 4.bed" % ( form_one_field_label, folder_one.name )
self.add_library_dataset( '4.bed',
str( library_one.id ),
str( folder_one.id ),
@@ -918,18 +768,8 @@
roles=[ str( regular_user1_private_role.id ) ],
message=message.replace( ' ', '+' ),
root=False,
- check_template_str1=ele_name_0,
- check_template_str2=ele_name_1 )
- """
- self.add_library_dataset( '4.bed',
- str( library_one.id ),
- str( folder_one.id ),
- folder_one.name,
- file_format='bed',
- dbkey='hg18',
- roles=[ str( regular_user1_private_role.id ) ],
- message=message.replace( ' ', '+' ),
- root=False )
+ template_field_name1=form_one_field_name,
+ template_field_contents1=template_contents )
global ldda_four
ldda_four = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
@@ -940,7 +780,12 @@
self.check_page_for_string( message )
self.check_page_for_string( admin_user.email )
self.home()
- def test_140_accessing_dataset_with_private_role_restriction( self ):
+ # Make sure the library template contents were correctly saved
+ self.home()
+ self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
+ ( self.url, str( library_one.id ), str( folder_one.id ), str( ldda_four.id ) ) )
+ self.check_page_for_string( template_contents )
+ def test_120_accessing_dataset_with_private_role_restriction( self ):
"""Testing accessing a dataset with a private role restriction"""
# admin_user should not be able to see 2.bed from the analysis view's access libraries
self.home()
@@ -998,7 +843,7 @@
self.logout()
self.login( email=admin_user.email )
self.home()
- def test_145_change_dataset_access_permission( self ):
+ def test_125_change_dataset_access_permission( self ):
"""Testing changing the access permission on a dataset with a private role restriction"""
# We need admin_user to be able to access 2.bed
permissions_in = [ k for k, v in galaxy.model.Dataset.permitted_actions.items() ] + \
@@ -1012,41 +857,15 @@
self.visit_url( '%s/library/browse_library?id=%s' % ( self.url, str( library_one.id ) ) )
self.check_page_for_string( ldda_four.name )
self.home()
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
- def test_150_editing_restricted_datasets_information( self ):
- Testing editing a restricted library dataset's template element information
- ele_1_contents = ''
- ele_2_contents = ''
- ele_3_contents = 'Adding Fubar text'
- self.edit_ldda_template_element_info( str( library_one.id ), str( library_one.root_folder.id ), str( ldda_one.id ),
- ldda_one.name, ldda_one_ele_1_field_name, ele_1_contents, ldda_one_ele_2_field_name, ele_2_contents,
- ele_1_help='This is the wind component'.replace( ' ', '+' ),
- ele_2_help='This is the bag component'.replace( ' ', '+' ),
- ele_3_field_name=ldda_one_ele_3_field_name, ele_3_contents=ele_3_contents.replace( ' ', '+' ) )
- # Check the updated information from the libraries view
- self.home()
- self.visit_url( '%s/library/library_dataset_dataset_association?info=True&library_id=%s&folder_id=%s&id=%s' \
- % ( self.url, str( library_one.id ), str( library_one.root_folder.id ), str( ldda_one.id ) ) )
- self.check_page_for_string( ele_3_contents )
- try:
- self.check_page_for_string( 'blown' )
- raise AssertionError( 'Element contents were not correctly eliminated when the information was edited for ldda %s' % ldda_one.name)
- except:
- pass
- self.home()
- """
- def test_155_add_dataset_with_role_associated_with_group_and_users( self ):
+ def test_130_add_dataset_with_role_associated_with_group_and_users( self ):
"""Testing adding a dataset with a role that is associated with a group and users"""
self.login( email='test(a)bx.psu.edu' )
# Add a dataset restricted by role_two, which is currently associated as follows:
# groups: group_two
# users: test(a)bx.psu.edu, test1(a)bx.psu.edu via group_two
message = 'Testing adding a dataset with a role that is associated with a group and users'
- ele_name_0 = 'Fu'
- ele_name_1 = 'Bar'
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
+ # The form_one template should be inherited to the library dataset upload form.
+ template_contents = "%s contents for %s 5.bed" % ( form_one_field_label, folder_one.name )
self.add_library_dataset( '5.bed',
str( library_one.id ),
str( folder_one.id ),
@@ -1056,18 +875,8 @@
roles=[ str( role_two.id ) ],
message=message.replace( ' ', '+' ),
root=False,
- check_template_str1=ele_name_0,
- check_template_str2=ele_name_1 )
- """
- self.add_library_dataset( '5.bed',
- str( library_one.id ),
- str( folder_one.id ),
- folder_one.name,
- file_format='bed',
- dbkey='hg17',
- roles=[ str( role_two.id ) ],
- message=message.replace( ' ', '+' ),
- root=False )
+ template_field_name1=form_one_field_name,
+ template_field_contents1=template_contents )
global ldda_five
ldda_five = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
@@ -1078,7 +887,12 @@
self.check_page_for_string( message )
self.check_page_for_string( admin_user.email )
self.home()
- def test_160_accessing_dataset_with_role_associated_with_group_and_users( self ):
+ # Make sure the library template contents were correctly saved
+ self.home()
+ self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
+ ( self.url, str( library_one.id ), str( folder_one.id ), str( ldda_five.id ) ) )
+ self.check_page_for_string( template_contents )
+ def test_135_accessing_dataset_with_role_associated_with_group_and_users( self ):
"""Testing accessing a dataset with a role that is associated with a group and users"""
# admin_user should be able to see 5.bed since she is associated with role_two
self.home()
@@ -1152,7 +966,7 @@
pass
self.logout()
self.login( email='test(a)bx.psu.edu' )
- def test_165_copy_dataset_from_history_to_subfolder( self ):
+ def test_140_copy_dataset_from_history_to_subfolder( self ):
"""Testing copying a dataset from the current history to a subfolder"""
self.new_history()
self.upload_file( "6.bed" )
@@ -1173,18 +987,19 @@
ldda_six = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
assert ldda_six is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda_six from the database'
+ self.home()
# Make sure the correct template was inherited
- ## TODO: temporarily eliminating templates until we have the new forms features done
- self.home()
- """
- self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
- ( self.url, str( library_one.id ), str( subfolder_one.id ), str( ldda_six.id ) ) )
- self.check_page_for_string( 'Fu' )
- self.check_page_for_string( 'This is the Fu component' )
- self.check_page_for_string( 'Bar' )
- self.check_page_for_string( 'This is the Bar component' )
- """
- def test_170_editing_dataset_attribute_info( self ):
+ self.visit_url( '%s/library/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s' \
+ % ( self.url, str( library_one.id ), str( subfolder_one.id ), str( ldda_six.id ) ) )
+ self.check_page_for_string( form_one_field_name )
+ # Make sure the template contents were NOT inherited
+ contents = "%s contents for Folder One's Subfolder" % form_one_field_label
+ try:
+ self.check_page_for_string( contents )
+ raise AssertionError, "Parent folder template contents were displayed in the sub-folders inherited template fields"
+ except:
+ pass
+ def test_145_editing_dataset_attribute_info( self ):
"""Testing editing a datasets attribute information"""
new_ldda_name = '6.bed ( version 1 )'
self.edit_ldda_attribute_info( str( library_one.id ), str( subfolder_one.id ), str( ldda_six.id ), ldda_six.name, new_ldda_name )
@@ -1193,11 +1008,21 @@
self.visit_url( '%s/library_admin/browse_library?id=%s' % ( self.url, str( library_one.id ) ) )
self.check_page_for_string( ldda_six.name )
self.home()
- def test_175_uploading_new_dataset_version( self ):
+ # Make sure the template contents were NOT inherited
+ self.visit_url( '%s/library/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s' \
+ % ( self.url, str( library_one.id ), str( subfolder_one.id ), str( ldda_six.id ) ) )
+ self.check_page_for_string( form_one_field_name )
+ contents = "%s contents for Folder One's Subfolder" % form_one_field_label
+ try:
+ self.check_page_for_string( contents )
+ raise AssertionError, "Parent folder template contents were displayed in the sub-folders inherited template fields"
+ except:
+ pass
+ def test_150_uploading_new_dataset_version( self ):
"""Testing uploading a new version of a dataset"""
message = 'Testing uploading a new version of a dataset'
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
+ # The form_one template should be inherited to the library dataset upload form.
+ template_contents = "%s contents for %s new version of 6.bed" % ( form_one_field_label, folder_one.name )
self.upload_new_dataset_version( '6.bed',
str( library_one.id ),
str( subfolder_one.id ),
@@ -1207,39 +1032,31 @@
file_format='auto',
dbkey='hg18',
message=message.replace( ' ', '+' ),
- check_template_str1='Fu',
- check_template_str2='Bar' )
- """
- self.upload_new_dataset_version( '6.bed',
- str( library_one.id ),
- str( subfolder_one.id ),
- str( subfolder_one.name ),
- str( ldda_six.library_dataset.id ),
- ldda_six.name,
- file_format='auto',
- dbkey='hg18',
- message=message.replace( ' ', '+' ) )
+ template_field_name1=form_one_field_name,
+ template_field_contents1=template_contents )
global ldda_six_version_two
ldda_six_version_two = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
assert ldda_six_version_two is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda_six_version_two from the database'
self.home()
- self.visit_url( "%s/library_admin/library_dataset_dataset_association?info=True&library_id=%s&folder_id=%s&id=%s" % \
+ self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
( self.url, str( library_one.id ), str( subfolder_one.id ), str( ldda_six_version_two.id ) ) )
self.check_page_for_string( 'This is the latest version of this library dataset' )
# Make sure the correct template was inherited
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
- self.check_page_for_string( 'Fu' )
- self.check_page_for_string( 'This is the Fu component' )
- self.check_page_for_string( 'Bar' )
- self.check_page_for_string( 'This is the Bar component' )
- check_str = 'Expired versions of %s' % ldda_six_version_two.name
- self.check_page_for_string( check_str )
- self.check_page_for_string( ldda_six.name )
- """
- self.home()
- # Make sure th permissions are the same
+ self.check_page_for_string( template_contents )
+ # Make sure it does not include any inherited contents
+ contents = "%s contents for Folder One's Subfolder" % form_one_field_label
+ try:
+ self.check_page_for_string( contents )
+ raise AssertionError, "Parent folder template contents were displayed in the sub-folders inherited template fields"
+ except:
+ pass
+ # There are 4 forms on this page and the template is the 4th form
+ tc.fv( '4', form_one_field_name, template_contents )
+ tc.submit( 'edit_info_button' )
+ self.check_page_for_string( 'The information has been updated.' )
+ self.check_page_for_string( template_contents )
+ # Make sure the permissions are the same
ldda_six.refresh()
if len( ldda_six.actions ) != len( ldda_six_version_two.actions ):
raise AssertionError( 'ldda "%s" actions "%s" != ldda "%s" actions "%s"' \
@@ -1256,47 +1073,55 @@
( self.url, str( library_one.id ), str( subfolder_one.id ), str( ldda_six.id ) ) )
self.check_page_for_string( 'This is an expired version of this library dataset' )
self.home()
- def test_180_uploading_new_dataset_versions( self ):
+ # Make sure ldda_six is no longer displayed in the library
+ self.visit_url( '%s/library_admin/browse_library?id=%s' % ( self.url, str( library_one.id ) ) )
+ try:
+ self.check_page_for_string( ldda_six.name )
+ raise AssertionError, "Old version of library dataset %s is displayed in library" % ldda_six.name
+ except:
+ pass
+ self.home()
+ def test_155_uploading_new_dataset_versions( self ):
"""Testing uploading new versions of a dataset using a directory of files"""
message = 'Testing uploading new versions of a dataset using a directory of files'
+ # The form_one template should be inherited to the library dataset upload form.
+ template_contents = "%s contents for %s 5th new version of 6.bed" % ( form_one_field_label, folder_one.name )
ldda_six_version_two.refresh()
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
- self.upload_new_dataset_versions( str( library_one.id ),
- str( subfolder_one.id ),
- str( subfolder_one.name ),
- str( ldda_six_version_two.library_dataset.id ),
- ldda_six_version_two.name,
- file_format='auto',
- dbkey='hg18',
- message=message.replace( ' ', '+' ),
- check_template_str1='Fu',
- check_template_str2='Bar' )
- """
- self.upload_new_dataset_versions( str( library_one.id ),
- str( subfolder_one.id ),
- str( subfolder_one.name ),
- str( ldda_six_version_two.library_dataset.id ),
- ldda_six_version_two.name,
- file_format='auto',
- dbkey='hg18',
- message=message.replace( ' ', '+' ) )
+ self.upload_new_dataset_version( '6.bed',
+ str( library_one.id ),
+ str( subfolder_one.id ),
+ str( subfolder_one.name ),
+ str( ldda_six_version_two.library_dataset.id ),
+ ldda_six_version_two.name,
+ file_format='auto',
+ dbkey='hg18',
+ message=message.replace( ' ', '+' ),
+ template_field_name1=form_one_field_name,
+ template_field_contents1=template_contents )
global ldda_six_version_five
ldda_six_version_five = galaxy.model.LibraryDatasetDatasetAssociation.query() \
.order_by( desc( galaxy.model.LibraryDatasetDatasetAssociation.table.c.create_time ) ).first()
assert ldda_six_version_five is not None, 'Problem retrieving LibraryDatasetDatasetAssociation ldda_six_version_five from the database'
self.home()
- self.visit_url( "%s/library_admin/library_dataset_dataset_association?info=True&library_id=%s&folder_id=%s&id=%s" % \
+ self.visit_url( "%s/library_admin/library_dataset_dataset_association?edit_info=True&library_id=%s&folder_id=%s&id=%s" % \
( self.url, str( library_one.id ), str( subfolder_one.id ), str( ldda_six_version_five.id ) ) )
self.check_page_for_string( 'This is the latest version of this library dataset' )
# Make sure the correct template was inherited
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
- self.check_page_for_string( 'Fu' )
- self.check_page_for_string( 'This is the Fu component' )
- self.check_page_for_string( 'Bar' )
- self.check_page_for_string( 'This is the Bar component' )
- """
+ self.check_page_for_string( template_contents )
+ # Make sure it does not include any inherited contents
+ contents = "%s contents for Folder One's Subfolder" % form_one_field_label
+ try:
+ self.check_page_for_string( contents )
+ raise AssertionError, "Parent folder template contents were displayed in the sub-folders inherited template fields"
+ except:
+ pass
+ # There are 4 forms on this page and the template is the 4th form
+ tc.fv( '4', form_one_field_name, template_contents )
+ tc.submit( 'edit_info_button' )
+ self.check_page_for_string( 'The information has been updated.' )
+ self.check_page_for_string( template_contents )
+ self.visit_url( "%s/library_admin/library_dataset_dataset_association?info=True&library_id=%s&folder_id=%s&id=%s" % \
+ ( self.url, str( library_one.id ), str( subfolder_one.id ), str( ldda_six_version_five.id ) ) )
check_str = 'Expired versions of %s' % ldda_six_version_five.name
self.check_page_for_string( check_str )
self.check_page_for_string( ldda_six.name )
@@ -1318,32 +1143,24 @@
( self.url, str( library_one.id ), str( subfolder_one.id ), str( ldda_six_version_two.id ) ) )
self.check_page_for_string( 'This is an expired version of this library dataset' )
self.home()
- def test_185_upload_directory_of_files_from_admin_view( self ):
+ def test_160_upload_directory_of_files_from_admin_view( self ):
"""Testing uploading a directory of files to a root folder from the Admin view"""
message = 'This is a test for uploading a directory of files'
+ template_contents = "%s contents for directory of 3 datasets in %s" % ( form_one_field_label, folder_one.name )
roles_tuple = [ ( str( role_one.id ), role_one.name ) ]
check_str = "Added 3 datasets to the library '%s' ( each is selected )." % library_one.root_folder.name
- ## TODO: temporarily eliminating templates until we have the new forms features done
- """
- self.add_dir_of_files_from_admin_view( str( library_one.id ),
- str( library_one.root_folder.id ),
- roles_tuple=roles_tuple,
- message=message.replace( '+', ' ' ),
- check_str=check_str,
- check_template_str1='wind',
- check_template_str2='bag',
- check_template_str3='Fubar' )
- """
self.add_dir_of_files_from_admin_view( str( library_one.id ),
str( library_one.root_folder.id ),
roles_tuple=roles_tuple,
- message=message.replace( '+', ' ' ) )
+ message=message.replace( '+', ' ' ),
+ template_field_name1=form_one_field_name,
+ template_field_contents1=template_contents )
self.home()
self.visit_page( 'library_admin/browse_library?id=%s' % ( str( library_one.id ) ) )
self.check_page_for_string( admin_user.email )
self.check_page_for_string( message )
self.home()
- def test_190_change_permissions_on_datasets_uploaded_from_library_dir( self ):
+ def test_165_change_permissions_on_datasets_uploaded_from_library_dir( self ):
"""Testing changing the permissions on datasets uploaded from a directory"""
# It would be nice if twill functioned such that the above test resulted in a
# form with the uploaded datasets selected, but it does not ( they're not checked ),
@@ -1451,7 +1268,7 @@
pass
check_edit_page2( latest_3_lddas )
self.home()
- def test_195_upload_directory_of_files_from_libraries_view( self ):
+ def test_170_upload_directory_of_files_from_libraries_view( self ):
"""Testing uploading a directory of files to a root folder from the Data Libraries view"""
# admin_user will not have the option sto upload a directory of files from the
# Libraries view since a sub-directory named the same as their email is not contained
@@ -1483,7 +1300,6 @@
str( library_one.root_folder.id ),
'run1',
check_str_after_submit=check_str_after_submit,
- check_str1=check_str1,
message=message.replace( '+', ' ' ) )
self.home()
self.visit_page( 'library/browse_library?id=%s' % ( str( library_one.id ) ) )
@@ -1492,7 +1308,8 @@
self.home()
self.logout()
self.login( email=admin_user.email )
- def test_200_mark_group_deleted( self ):
+
+ def test_175_mark_group_deleted( self ):
"""Testing marking a group as deleted"""
self.home()
self.visit_url( '%s/admin/groups' % self.url )
@@ -1506,13 +1323,13 @@
raise AssertionError( '%s incorrectly lost all members when it was marked as deleted.' % group_two.name )
if not group_two.roles:
raise AssertionError( '%s incorrectly lost all role associations when it was marked as deleted.' % group_two.name )
- def test_205_undelete_group( self ):
+ def test_180_undelete_group( self ):
"""Testing undeleting a deleted group"""
self.undelete_group( str( group_two.id ), group_two.name )
group_two.refresh()
if group_two.deleted:
raise AssertionError( '%s was not correctly marked as not deleted.' % group_two.name )
- def test_210_mark_role_deleted( self ):
+ def test_185_mark_role_deleted( self ):
"""Testing marking a role as deleted"""
self.home()
self.visit_url( '%s/admin/roles' % self.url )
@@ -1526,10 +1343,10 @@
raise AssertionError( '%s incorrectly lost all user associations when it was marked as deleted.' % role_two.name )
if not role_two.groups:
raise AssertionError( '%s incorrectly lost all group associations when it was marked as deleted.' % role_two.name )
- def test_215_undelete_role( self ):
+ def test_190_undelete_role( self ):
"""Testing undeleting a deleted role"""
self.undelete_role( str( role_two.id ), role_two.name )
- def test_220_mark_dataset_deleted( self ):
+ def test_195_mark_dataset_deleted( self ):
"""Testing marking a library dataset as deleted"""
self.home()
self.delete_library_item( str( library_one.id ), str( ldda_two.library_dataset.id ), ldda_two.name, library_item_type='library_dataset' )
@@ -1542,13 +1359,13 @@
except:
pass
self.home()
- def test_225_display_deleted_dataset( self ):
+ def test_200_display_deleted_dataset( self ):
"""Testing displaying deleted dataset"""
self.home()
self.visit_url( "%s/library_admin/browse_library?id=%s&show_deleted=True" % ( self.url, str( library_one.id ) ) )
self.check_page_for_string( ldda_two.name )
self.home()
- def test_230_hide_deleted_dataset( self ):
+ def test_205_hide_deleted_dataset( self ):
"""Testing hiding deleted dataset"""
self.home()
self.visit_url( "%s/library_admin/browse_library?id=%s&show_deleted=False" % ( self.url, str( library_one.id ) ) )
@@ -1558,7 +1375,7 @@
except:
pass
self.home()
- def test_235_mark_folder_deleted( self ):
+ def test_210_mark_folder_deleted( self ):
"""Testing marking a library folder as deleted"""
self.home()
self.delete_library_item( str( library_one.id ), str( folder_two.id ), folder_two.name, library_item_type='folder' )
@@ -1570,7 +1387,7 @@
except:
pass
self.home()
- def test_240_mark_folder_undeleted( self ):
+ def test_215_mark_folder_undeleted( self ):
"""Testing marking a library folder as undeleted"""
self.home()
self.undelete_library_item( str( library_one.id ), str( folder_two.id ), folder_two.name, library_item_type='folder' )
@@ -1585,7 +1402,7 @@
except:
pass
self.home()
- def test_245_mark_library_deleted( self ):
+ def test_220_mark_library_deleted( self ):
"""Testing marking a library as deleted"""
self.home()
# First mark folder_two as deleted to further test state saving when we undelete the library
@@ -1595,7 +1412,7 @@
self.visit_page( 'library_admin/deleted_libraries' )
self.check_page_for_string( library_one.name )
self.home()
- def test_240_mark_library_undeleted( self ):
+ def test_225_mark_library_undeleted( self ):
"""Testing marking a library as undeleted"""
self.home()
self.undelete_library_item( str( library_one.id ), str( library_one.id ), library_one.name, library_item_type='library' )
@@ -1609,7 +1426,7 @@
except:
pass
self.home()
- def test_250_purge_user( self ):
+ def test_230_purge_user( self ):
"""Testing purging a user account"""
self.mark_user_deleted( user_id=self.security.encode_id( regular_user3.id ), email=regular_user3.email )
regular_user3.refresh()
@@ -1641,7 +1458,7 @@
role = galaxy.model.Role.get( ura.role_id )
if role.type != 'private':
raise AssertionError( 'UserRoleAssociations for user %s are not related with the private role.' % regular_user3.email )
- def test_255_manually_unpurge_user( self ):
+ def test_235_manually_unpurge_user( self ):
"""Testing manually un-purging a user account"""
# Reset the user for later test runs. The user's private Role and DefaultUserPermissions for that role
# should have been preserved, so all we need to do is reset purged and deleted.
@@ -1649,7 +1466,7 @@
regular_user3.purged = False
regular_user3.deleted = False
regular_user3.flush()
- def test_260_purge_group( self ):
+ def test_240_purge_group( self ):
"""Testing purging a group"""
group_id = str( group_two.id )
self.mark_group_deleted( group_id, group_two.name )
@@ -1664,7 +1481,7 @@
raise AssertionError( "Purging the group did not delete the GroupRoleAssociations for group_id '%s'" % group_id )
# Undelete the group for later test runs
self.undelete_group( group_id, group_two.name )
- def test_265_purge_role( self ):
+ def test_245_purge_role( self ):
"""Testing purging a role"""
role_id = str( role_two.id )
self.mark_role_deleted( role_id, role_two.name )
@@ -1689,14 +1506,14 @@
dp = galaxy.model.DatasetPermissions.filter( galaxy.model.DatasetPermissions.table.c.role_id == role_id ).all()
if dp:
raise AssertionError( "Purging the role did not delete the DatasetPermissionss for role_id '%s'" % role_id )
- def test_270_manually_unpurge_role( self ):
+ def test_250_manually_unpurge_role( self ):
"""Testing manually un-purging a role"""
# Manually unpurge, then undelete the role for later test runs
# TODO: If we decide to implement the GUI feature for un-purging a role, replace this with a method call
role_two.purged = False
role_two.flush()
self.undelete_role( str( role_two.id ), role_two.name )
- def test_275_purge_library( self ):
+ def test_255_purge_library( self ):
"""Testing purging a library"""
self.home()
self.delete_library_item( str( library_one.id ), str( library_one.id ), library_one.name, library_item_type='library' )
@@ -1732,7 +1549,7 @@
raise AssertionError( 'The library_dataset id %s named "%s" has not been marked as deleted.' % \
( str( library_dataset.id ), library_dataset.name ) )
check_folder( library_one.root_folder )
- def test_280_reset_data_for_later_test_runs( self ):
+ def test_260_reset_data_for_later_test_runs( self ):
"""Reseting data to enable later test runs to pass"""
##################
# Eliminate all non-private roles
1
0
21 Sep '09
details: http://www.bx.psu.edu/hg/galaxy/rev/5e78a1fd1351
changeset: 2723:5e78a1fd1351
user: guru
date: Fri Sep 18 15:48:06 2009 -0400
description:
Commenting out functional test for fastx_collapser tool as the order of sequences in the output seems to differ between 32 bit and 64 bit machines.
1 file(s) affected in this change:
tools/fastx_toolkit/fastx_collapser.xml
diffs (19 lines):
diff -r 6ed5f088a2ad -r 5e78a1fd1351 tools/fastx_toolkit/fastx_collapser.xml
--- a/tools/fastx_toolkit/fastx_collapser.xml Fri Sep 18 15:28:18 2009 -0400
+++ b/tools/fastx_toolkit/fastx_collapser.xml Fri Sep 18 15:48:06 2009 -0400
@@ -6,13 +6,14 @@
<param format="fastqsolexa,fasta" name="input" type="data" label="Library to collapse" />
</inputs>
+ <!-- The order of sequences in the test output differ between 32 bit and 64 bit machines.
<tests>
<test>
<param name="input" value="fasta_collapser1.fasta" />
<output name="output" file="fasta_collapser1.out" />
</test>
</tests>
-
+ -->
<outputs>
<data format="fasta" name="output" metadata_source="input" />
</outputs>
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/4e93d6c5665b
changeset: 2724:4e93d6c5665b
user: Nate Coraor <nate(a)bx.psu.edu>
date: Fri Sep 18 15:59:19 2009 -0400
description:
Update bx egg
1 file(s) affected in this change:
eggs.ini
diffs (18 lines):
diff -r 5e78a1fd1351 -r 4e93d6c5665b eggs.ini
--- a/eggs.ini Fri Sep 18 15:48:06 2009 -0400
+++ b/eggs.ini Fri Sep 18 15:59:19 2009 -0400
@@ -57,12 +57,12 @@
MySQL_python = _5.0.67_static
python_lzo = _static
flup = .dev_r2311
-bx_python = _dev_r4bf1f32e6b76
+bx_python = _dev_r405b4a48b824
nose = .dev_r101
; source location, necessary for scrambling
[source]
-bx_python = http://bitbucket.org/james_taylor/bx-python/get/4bf1f32e6b76.bz2
+bx_python = http://bitbucket.org/james_taylor/bx-python/get/405b4a48b824.gz
Cheetah = http://voxel.dl.sourceforge.net/sourceforge/cheetahtemplate/Cheetah-1.0.tar…
DRMAA_python = http://gridengine.sunsource.net/files/documents/7/36/DRMAA-python-0.2.tar.gz
MySQL_python = http://superb-west.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python… http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.67.tar.gz
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/cb9b12f8e127
changeset: 2725:cb9b12f8e127
user: James Taylor <james(a)jamestaylor.org>
date: Fri Sep 18 16:07:17 2009 -0400
description:
Backed out changeset 4e93d6c5665b
1 file(s) affected in this change:
eggs.ini
diffs (18 lines):
diff -r 4e93d6c5665b -r cb9b12f8e127 eggs.ini
--- a/eggs.ini Fri Sep 18 15:59:19 2009 -0400
+++ b/eggs.ini Fri Sep 18 16:07:17 2009 -0400
@@ -57,12 +57,12 @@
MySQL_python = _5.0.67_static
python_lzo = _static
flup = .dev_r2311
-bx_python = _dev_r405b4a48b824
+bx_python = _dev_r4bf1f32e6b76
nose = .dev_r101
; source location, necessary for scrambling
[source]
-bx_python = http://bitbucket.org/james_taylor/bx-python/get/405b4a48b824.gz
+bx_python = http://bitbucket.org/james_taylor/bx-python/get/4bf1f32e6b76.bz2
Cheetah = http://voxel.dl.sourceforge.net/sourceforge/cheetahtemplate/Cheetah-1.0.tar…
DRMAA_python = http://gridengine.sunsource.net/files/documents/7/36/DRMAA-python-0.2.tar.gz
MySQL_python = http://superb-west.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python… http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.67.tar.gz
1
0
21 Sep '09
details: http://www.bx.psu.edu/hg/galaxy/rev/891e1e2a407d
changeset: 2726:891e1e2a407d
user: James Taylor <james(a)jamestaylor.org>
date: Fri Sep 18 16:09:14 2009 -0400
description:
Allow array_tree.py to still load with older bx (but track browser won't work)
1 file(s) affected in this change:
lib/galaxy/visualization/tracks/data/array_tree.py
diffs (15 lines):
diff -r cb9b12f8e127 -r 891e1e2a407d lib/galaxy/visualization/tracks/data/array_tree.py
--- a/lib/galaxy/visualization/tracks/data/array_tree.py Fri Sep 18 16:07:17 2009 -0400
+++ b/lib/galaxy/visualization/tracks/data/array_tree.py Fri Sep 18 16:09:14 2009 -0400
@@ -3,7 +3,10 @@
"""
import pkg_resources; pkg_resources.require( "bx-python" )
-from bx.arrays.array_tree import FileArrayTreeDict
+try:
+ from bx.arrays.array_tree import FileArrayTreeDict
+except:
+ pass
from math import floor, ceil, log
# Maybe this should be included in the datatype itself, so users can add their
1
0
details: http://www.bx.psu.edu/hg/galaxy/rev/9d615c906e6c
changeset: 2728:9d615c906e6c
user: Kanwei Li <kanwei(a)gmail.com>
date: Fri Sep 18 22:41:11 2009 -0400
description:
minor track typos
1 file(s) affected in this change:
lib/galaxy/web/controllers/tracks.py
diffs (30 lines):
diff -r 71dbd24649e4 -r 9d615c906e6c lib/galaxy/web/controllers/tracks.py
--- a/lib/galaxy/web/controllers/tracks.py Fri Sep 18 21:04:58 2009 -0400
+++ b/lib/galaxy/web/controllers/tracks.py Fri Sep 18 22:41:11 2009 -0400
@@ -4,7 +4,7 @@
Track browsers are currently transient -- nothing is stored to the database
when a browser is created. Building a browser consists of selecting a set
of datasets associated with the same dbkey to display. Once selected, jobs
-are started to create any neccesary indexes in the background, and the user
+are started to create any necessary indexes in the background, and the user
is redirected to the browser interface, which loads the appropriate datasets.
Problems
@@ -105,7 +105,7 @@
dbkey = dataset.dbkey
chrom_lengths = self._chroms( trans, dbkey )
if chrom_lengths is None:
- error( "No chromosome lengths file found for '%s'" )
+ error( "No chromosome lengths file found for '%s'" % dataset.name )
return trans.fill_template( 'tracks/browser.mako',
dataset_ids=dataset_ids,
tracks=tracks,
@@ -186,7 +186,7 @@
return dataset
# See if we can convert the dataset
if type not in dataset.get_converter_types():
- log.debug( "Converstion from '%s' to '%d' not possible", dataset.extension, type )
+ log.debug( "Conversion from '%s' to '%d' not possible", dataset.extension, type )
return None
# See if converted dataset already exists
converted_datasets = dataset.get_converted_files_by_type( type )
1
0
21 Sep '09
details: http://www.bx.psu.edu/hg/galaxy/rev/71dbd24649e4
changeset: 2727:71dbd24649e4
user: James Taylor <james(a)jamestaylor.org>
date: Fri Sep 18 21:04:58 2009 -0400
description:
Comment out references to track store from app.py
1 file(s) affected in this change:
lib/galaxy/app.py
diffs (21 lines):
diff -r 891e1e2a407d -r 71dbd24649e4 lib/galaxy/app.py
--- a/lib/galaxy/app.py Fri Sep 18 16:09:14 2009 -0400
+++ b/lib/galaxy/app.py Fri Sep 18 21:04:58 2009 -0400
@@ -1,7 +1,7 @@
import sys, os, atexit
from galaxy import config, jobs, util, tools, web
-from galaxy.tracks import store
+## from galaxy.tracks import store
from galaxy.web import security
import galaxy.model
import galaxy.datatypes.registry
@@ -69,7 +69,7 @@
self.job_queue = self.job_manager.job_queue
self.job_stop_queue = self.job_manager.job_stop_queue
# Track Store
- self.track_store = store.TrackStoreManager( self.config.track_store_path )
+ ## self.track_store = store.TrackStoreManager( self.config.track_store_path )
def shutdown( self ):
self.job_manager.shutdown()
1
0