From 3377b7078a8482810da50604079b6a6bbd3d545a Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 12 Aug 2014 15:21:40 -0400 Subject: [PATCH] Controller updates for the resubmitted dataset instance state (thanks Carl!) --- lib/galaxy/jobs/__init__.py | 7 +++---- lib/galaxy/webapps/galaxy/api/history_contents.py | 10 +++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/jobs/__init__.py b/lib/galaxy/jobs/__init__.py index 159c0dd340d..6d6218d8c13 100644 --- a/lib/galaxy/jobs/__init__.py +++ b/lib/galaxy/jobs/__init__.py @@ -940,10 +940,9 @@ class JobWrapper( object ): def mark_as_resubmitted( self ): job = self.get_job() self.sa_session.refresh( job ) - # TODO: Enable this code once a UI for resubmitted datasets exists - #for dataset in [ dataset_assoc.dataset for dataset_assoc in job.output_datasets + job.output_library_datasets ]: - # dataset._state = model.Dataset.states.RESUBMITTED - # self.sa_session.add( dataset ) + for dataset in [ dataset_assoc.dataset for dataset_assoc in job.output_datasets + job.output_library_datasets ]: + dataset._state = model.Dataset.states.RESUBMITTED + self.sa_session.add( dataset ) job.state = model.Job.states.RESUBMITTED self.sa_session.add( job ) self.sa_session.flush() diff --git a/lib/galaxy/webapps/galaxy/api/history_contents.py b/lib/galaxy/webapps/galaxy/api/history_contents.py index 197d1df555e..58a8e48a242 100644 --- a/lib/galaxy/webapps/galaxy/api/history_contents.py +++ b/lib/galaxy/webapps/galaxy/api/history_contents.py @@ -131,15 +131,20 @@ class HistoryContentsController( BaseAPIController, UsesHistoryDatasetAssociatio """ api_type = "file" encoded_id = trans.security.encode_id( hda.id ) + # TODO: handle failed_metadata here as well + state = hda.state + if state == trans.app.model.Dataset.states.RESUBMITTED: + state = hda.dataset.state return { 'id' : encoded_id, 'history_id' : encoded_history_id, 'name' : hda.name, 'type' : api_type, - 'state' : hda.state, + 'state' : state, 'deleted': hda.deleted, 'visible': hda.visible, 'purged': hda.purged, + 'resubmitted': hda._state == trans.app.model.Dataset.states.RESUBMITTED, 'hid' : hda.hid, 'history_content_type' : hda.history_content_type, 'url' : url_for( 'history_content_typed', history_id=encoded_history_id, id=encoded_id, type="dataset" ), @@ -157,6 +162,9 @@ class HistoryContentsController( BaseAPIController, UsesHistoryDatasetAssociatio hda_dict = self.get_hda_dict( trans, hda ) hda_dict[ 'display_types' ] = self.get_old_display_applications( trans, hda ) hda_dict[ 'display_apps' ] = self.get_display_apps( trans, hda ) + if hda_dict[ 'state' ] == trans.app.model.Dataset.states.RESUBMITTED: + hda_dict[ 'state' ] = hda.dataset.state + hda_dict[ 'resubmitted' ] = True return hda_dict except Exception, exc: # catch error here - returning a briefer hda_dict with an error attribute