From e03d7ba3dcf4583b8a13b012f3d6752051c6b2a7 Mon Sep 17 00:00:00 2001 From: Ramkrishna Chakrabarty Date: Mon, 15 Mar 2010 12:40:30 -0400 Subject: [PATCH] lims: automatic update of sample state when the state is changed in th db (using scanner etc) --- lib/galaxy/web/controllers/requests_admin.py | 21 +++++ templates/admin/requests/show_request.mako | 87 +++++++++++++++++--- templates/requests/sample_datasets.mako | 7 ++ templates/requests/sample_state.mako | 5 ++ 4 files changed, 109 insertions(+), 11 deletions(-) create mode 100644 templates/requests/sample_datasets.mako create mode 100644 templates/requests/sample_state.mako diff --git a/lib/galaxy/web/controllers/requests_admin.py b/lib/galaxy/web/controllers/requests_admin.py index 85f9f87fe83..fdd17f5a68c 100644 --- a/lib/galaxy/web/controllers/requests_admin.py +++ b/lib/galaxy/web/controllers/requests_admin.py @@ -231,6 +231,27 @@ class RequestsAdmin( BaseController ): def index( self, trans ): return trans.fill_template( "/admin/requests/index.mako" ) + @web.json + def sample_state_updates( self, trans, ids=None, states=None ): + # Avoid caching + trans.response.headers['Pragma'] = 'no-cache' + trans.response.headers['Expires'] = '0' + # Create new HTML for any that have changed + rval = {} + if ids is not None and states is not None: + ids = map( int, ids.split( "," ) ) + states = states.split( "," ) + for id, state in zip( ids, states ): + sample = trans.sa_session.query( self.app.model.Sample ).get( id ) + if sample.current_state().name != state: + rval[id] = { + "state": sample.current_state().name, + "datasets": len(sample.dataset_files), + "html_state": unicode( trans.fill_template( "requests/sample_state.mako", sample=sample ), 'utf-8' ), + "html_datasets": unicode( trans.fill_template( "requests/sample_datasets.mako", trans=trans, sample=sample ), 'utf-8' ) + } + return rval + @web.expose @web.require_admin def list( self, trans, **kwd ): diff --git a/templates/admin/requests/show_request.mako b/templates/admin/requests/show_request.mako index 37a49299588..decb70cd9e7 100644 --- a/templates/admin/requests/show_request.mako +++ b/templates/admin/requests/show_request.mako @@ -1,5 +1,7 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/requests/sample_state.mako" import="render_sample_state" /> +<%namespace file="/requests/sample_datasets.mako" import="render_sample_datasets" /> %if msg: ${render_msg( msg, messagetype )} @@ -42,6 +44,54 @@ $(document).ready(function(){ }); + +