# HG changeset patch # User Sverre Rabbelier # Date 1239659193 0 # Node ID 3ebe6cb63aa029ac33187859c22548c9e3378dc2 # Parent 7b8dcd7aab759835960c6b1885ff2c337b08e7fb Place the getSingleton call in view decorator in the try This way timeouts on the getSingleton() call are also catched. Patch by: Sverre Rabbelier diff -r 7b8dcd7aab75 -r 3ebe6cb63aa0 app/soc/views/helper/decorators.py --- a/app/soc/views/helper/decorators.py Mon Apr 13 21:32:29 2009 +0000 +++ b/app/soc/views/helper/decorators.py Mon Apr 13 21:46:33 2009 +0000 @@ -57,15 +57,16 @@ def view_wrapper(request, *args, **kwds): """View decorator wrapper method. """ - site = site_logic.getSingleton() - - # don't redirect admins, or if we're at /maintenance already - no_redirect = user_logic.isDeveloper() or request.path == '/maintenance' - - if (not no_redirect) and timeline.isActivePeriod(site, 'maintenance'): - return http.HttpResponseRedirect('/maintenance') try: + site = site_logic.getSingleton() + + # don't redirect admins, or if we're at /maintenance already + no_redirect = user_logic.isDeveloper() or request.path == '/maintenance' + + if (not no_redirect) and timeline.isActivePeriod(site, 'maintenance'): + return http.HttpResponseRedirect('/maintenance') + return func(request, *args, **kwds) except DeadlineExceededError, exception: logging.exception(exception)