both from the dataset info page. The functional tests will now provide output
of these on tool test failure. The functional tests can now use
tool_dependency_dir as well.
framework is there for everything else now. Works like this:
* If your form/API params are the same across all forms for a model object
(e.g. all Quota operations), they should be placed in mixins in
galaxy.web.params and can be used universally by both the UI and API.
* Validating params and performing the requestion actions go in mixins in
galaxy.actions. These return a value upon success or raise a
MessageException upon failure.
* Fetching objects with checks relevant to the web methods can be done via
BaseController.get_object and its wrappers (see other helpers in the
Mixins in galaxy.web.base.controller as well).
* This leaves UI controller methods to just handle the stuff related to
filling in web forms.
* The API methods should be making use of paste.httpexceptions.* for
handling error conditions. Also, I think it'd be best to generally
return an item's API value from most methods and include the "message" as
an entry in the return dict rather than just by itself as a string.
None of this is required, but it would be great to convert the existing stuff
to this new model.
galaxy.exceptions is a collection point for all custom exceptions.
The User API now returns current disk usage with a User's detailed information.
Exceptions in the API are now logged by the expose_api decorator and hidden
from the client.
Include the automatic creation of a new DatasetPermission for an hda where the DATASET_MANAGE_PERMISSION permission is associated with the hda.history.user's private role if the hda has no roles associated with the DATASET_MANAGE_PERMISSION permission. The creation of the DatasetPermission occurs when the user clicks the pencil icon for the hda.
1. Eliminate some long-standing security issues
2. Encode all object ids - many were not being encoded
3. Eliminate all unnecessary methods
4. Rewite several poorly written methods
5. Fix several bugs related to USER_INFO form definitions
However, the behavior is now changed such that new associations are created when the checkbox is checked whereas before, only the Group or Role objects with the same name were created, but not associated with anything.
This code was very old, so I did some cleanup / improvements as well. Functional tests enhanced to reflect changes.
1. Fix a bug that included the option for a regular user to upload a directory of files when the config setting existed, but the user's directory did not exist.  Instead of throwing an exception, an attempt to create the directory will now be done.  If the attempt fails, the option to "Upload a directory of files" will not be included in the select list on the upload form.
2. When browsing a data library, only display the check boxes and the actions to perform on multiple selected datasets if library datasets are displayed.
3. Clean up the behavior when performing an action on multiple library datasets.  Instead of throwing an error and not allowing the action on any of the datasets if the user is not authorized to perform the action on 1 of them, all "unauthorized" datasets are now left alone and the action is performed on all datasets for which the user is authorized to perform the action.  Appropriate messages detail what occurred.
4. Allow regular users to delete multiple datasets returned from library dataset searches based on the behavior described in 3 above.
5. Do not include the "Select datasets for import into selected histories" option in the actions pop-up menu at the data library level if the library's root folder doesn't contain any accessible datasets.  Make behavior the same for folder popup menus.
6.  Add a new LibraryFolder.active_datasets mapper and eliminate the incorrect LibraryFolder.active_library_datasets property.  Callers of the incorrect property now use the mapper.
7. Eliminate the incorrect LibraryFolder.active_datasets property.
8. Fix the queries in the library_common controller's active_folders_and_lddas() and activable_folders_and_lddas() methods to return library_datasets instead of lddas, and rename the methods to be active_folders_and_library_datasets(0 and activatable_folders_and_library_datasets() respectively.
9. Fix bug where regular user could never see deleted library items when toggling show / hide deleted items.
10. Fix functional test for uploading directories of files to a library folder.  The test generally failed because not enough time would elapse before checking if the files uploaded.  The check is now performed in a later method in the test script, hopefully allowing for enough time to pass.
11. Functional test code clarifications for the browse_library() test method.
1. Enhance importing library dataset into the current history by now allowing the user to select from a list of existing histories or create a new named history ( similar to copying datasets ).  This feature is available for a specific library dataset, a folder ( or root folder ), when selecting multiple datasets from in a library,  and on the results page for searched library datasets.
2. Add Brad Chapman's latest patch for fixing the lucene search implementation
3. Eliminate searches on dataset state for both whoosh and lucene searches
4. Clarify the objects being searched in the regular search and advanced search boxes in the data libraries grids.
5. Add the ability to perform certain actions on 1 or more selected library datasets on the results page for searched library datasets.
6. Add a "select all" checkbox to the browse_library.mako template.
7. Fixed library functional tests accordingly.
Refactored getting form values into a separate method in controller.py.
Changed request type access into a restrict permission.
Added a check when sequencer_types are not loaded.
- sequencer table now populated with the unique sequencer in the request_type table
- sequencer_type is introduced which defines a sequencer
- support for sequencer (create, delete, edit)
- added support for a simple sequencer for backward compatibility
- added support for Solid sequencer
- tweaked the request_type api methods. removed the sequencer login info.