little things
[zzz-floof.git] / floof / config / environment.py
index 1ee51b8..cf6c77e 100644 (file)
@@ -3,13 +3,12 @@ import os
 
 from mako.lookup import TemplateLookup
 from pylons import config
 
 from mako.lookup import TemplateLookup
 from pylons import config
-from pylons.error import handle_mako_error
 from sqlalchemy import engine_from_config
 
 import floof.lib.app_globals as app_globals
 import floof.lib.helpers
 from floof.config.routing import make_map
 from sqlalchemy import engine_from_config
 
 import floof.lib.app_globals as app_globals
 import floof.lib.helpers
 from floof.config.routing import make_map
-from floof.model import init_model
+import floof.model as model
 
 def load_environment(global_conf, app_conf):
     """Configure the Pylons environment via the ``pylons.config``
 
 def load_environment(global_conf, app_conf):
     """Configure the Pylons environment via the ``pylons.config``
@@ -32,14 +31,21 @@ def load_environment(global_conf, app_conf):
     # Create the Mako TemplateLookup, with the default auto-escaping
     config['pylons.app_globals'].mako_lookup = TemplateLookup(
         directories=paths['templates'],
     # Create the Mako TemplateLookup, with the default auto-escaping
     config['pylons.app_globals'].mako_lookup = TemplateLookup(
         directories=paths['templates'],
-        error_handler=handle_mako_error,
         module_directory=os.path.join(app_conf['cache_dir'], 'templates'),
         module_directory=os.path.join(app_conf['cache_dir'], 'templates'),
-        input_encoding='utf-8', default_filters=['escape'],
-        imports=['from webhelpers.html import escape'])
+        input_encoding='utf-8', output_encoding='utf-8',
+        imports=['from webhelpers.html import escape'],
+        default_filters=['escape'])
 
 
-    # Setup the SQLAlchemy database engine
+    # Setup the SQLAlchemy^W Elixir database engine
     engine = engine_from_config(config, 'sqlalchemy.')
     engine = engine_from_config(config, 'sqlalchemy.')
-    init_model(engine)
+    if model.elixir.options_defaults.get('autoload'):
+        # Reflected tables
+        model.elixir.bind = engine
+        model.metadata.bind = engine
+        model.elixir.setup_all()
+    else:
+        # Non-reflected tables
+        model.init_model(engine)
 
     # CONFIGURATION OPTIONS HERE (note: all config options will override
     # any Pylons config options)
 
     # CONFIGURATION OPTIONS HERE (note: all config options will override
     # any Pylons config options)