Ticket #1359: trans_in_request.diff

File trans_in_request.diff, 1.0 kB (added by Janzert, 1 year ago)

Patch adding the SA transaction into the cherrypy.request object

  • turbogears/database.py

    old new  
    336336[run_with_transaction.when("_use_sa()")] 
    337337def sa_rwt(func, *args, **kw): 
    338338    log.debug("New SA transaction") 
    339     transaction = session.create_transaction() 
     339    req = cherrypy.request 
     340    req.sa_transaction = session.create_transaction() 
    340341    try: 
    341342        retval = func(*args, **kw) 
    342         transaction.commit() 
     343        req.sa_transaction.commit() 
    343344    except (cherrypy.HTTPRedirect,cherrypy.InternalRedirect): 
    344345        try: 
    345             transaction.commit() 
     346            req.sa_transaction.commit() 
    346347        except Exception,e: 
    347348            retval = dispatch_exception(e,args,kw) 
    348349        else: 
    349350            raise 
    350351    except Exception, e: 
    351         transaction.rollback() 
     352        req.sa_transaction.rollback() 
    352353        retval = dispatch_exception(e,args,kw) 
    353354    return retval 
    354355