pyalchemybiz/pyalchemybiz/lib/base.py
Jan Dittberner 1bbcc8e559 start internationalisation
* add babel stuff to setup.py
 * translate existing templates (addresses #11)
 * translate existing controllers

git-svn-id: file:///var/www/wwwusers/usr01/svn/pyalchemybiz/trunk@9 389c73d4-bf09-4d3d-a15e-f94a37d0667a
2008-10-05 23:14:25 +00:00

45 lines
1.5 KiB
Python

"""The base Controller API
Provides the BaseController class for subclassing, and other objects
utilized by Controllers.
"""
from pylons import c, cache, config, g, request, response, session
from pylons.controllers import WSGIController
from pylons.controllers.util import abort, etag_cache, redirect_to
from pylons.decorators import jsonify, validate
from pylons.i18n import _, ungettext, N_, add_fallback, set_lang
from pylons.templating import render
import pyalchemybiz.lib.helpers as h
import pyalchemybiz.model as model
from pyalchemybiz.model import meta
from sqlalchemy.orm import sessionmaker
class BaseController(WSGIController):
def __call__(self, environ, start_response):
"""Invoke the Controller"""
# WSGIController.__call__ dispatches to the Controller method
# the request is routed to. This routing information is
# available in environ['pylons.routes_dict']
# set language environment
for lang in request.languages:
try:
add_fallback(lang)
except:
pass
# connect to database
conn = meta.engine.connect()
meta.Session.configure(bind=conn)
try:
return WSGIController.__call__(self, environ, start_response)
finally:
meta.Session.remove()
conn.close()
# Include the '_' function in the public names
__all__ = [__name for __name in locals().keys() if not __name.startswith('_') \
or __name == '_']