From 32846eaaf2d4e73d7535d35c1af5366d27862610 Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Wed, 6 Feb 2008 16:46:12 +0000 Subject: [PATCH] Better way to retrieve the user's most recently updated history upon login. --- lib/galaxy/web/framework/__init__.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/galaxy/web/framework/__init__.py b/lib/galaxy/web/framework/__init__.py index 7b7687f600a..8c450c7aa64 100644 --- a/lib/galaxy/web/framework/__init__.py +++ b/lib/galaxy/web/framework/__init__.py @@ -24,6 +24,9 @@ import mako.lookup pkg_resources.require( "simplejson" ) import simplejson +pkg_resources.require( "sqlalchemy>=0.3" ) +from sqlalchemy import desc + import logging log = logging.getLogger( __name__ ) @@ -230,16 +233,12 @@ class UniverseWebTransaction( base.DefaultWebTransaction ): galaxy_session = self.app.model.GalaxySession() if self.user is not None: galaxy_session.user_id = self.user.id - if self.user.histories: - history_id = None - update_time = None - for history in self.user.histories: - if history_id is None or history.update_time > update_time: - history_id = history.id - update_time = history.update_time - history = self.app.model.History.get( history_id ) - if history is not None: - self.history = history + h = self.app.model.History + ht = h.table + where = ( ht.c.user_id==self.user.id ) & ( ht.c.deleted=='f' ) + history = h.query().filter( where ).order_by( desc( ht.c.update_time ) ).first() + if history is not None: + self.history = history galaxy_session.remote_host = self.request.remote_host galaxy_session.remote_addr = self.request.remote_addr try: