Changeset 5151
- Timestamp:
- 08/18/08 13:37:09 (5 months ago)
- Files:
-
- trunk/docs/main/Config.rst (modified) (1 diff)
- trunk/tg/config.py (modified) (7 diffs)
- trunk/tg/controllers.py (modified) (4 diffs)
- trunk/tg/render.py (modified) (1 diff)
- trunk/tg/wsgiapp.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/docs/main/Config.rst
r5134 r5151 77 77 base_config.default_renderer = 'mako' 78 78 base_config.renderers.append('mako') 79 79 80 80 81 Configuration in the INI files trunk/tg/config.py
r5150 r5151 55 55 self.serve_static = True 56 56 self.paths = Bunch() 57 self.render_functions = Bunch() 57 58 58 59 def setup_paths(self): 59 60 root = os.path.dirname(os.path.abspath(self.package.__file__)) 60 61 # The default paths: 61 paths = dict(root=root,62 paths = Bunch(root=root, 62 63 controllers=os.path.join(root, 'controllers'), 63 64 static_files=os.path.join(root, 'public'), … … 67 68 paths.update(self.paths) 68 69 self.paths = paths 69 70 70 71 def init_config(self, global_conf, app_conf): 71 72 # Initialize config with the basic options … … 117 118 imports=['from webhelpers.html import escape'], 118 119 default_filters=['escape']) 119 config['pylons.app_globals'].renderer_functions = render_mako 120 121 self.renderer_functions.mako = render_mako 120 122 121 123 def setup_genshi_renderer(self): … … 127 129 "Plug-in our i18n function to Genshi." 128 130 genshi.template.filters.insert(0, Translator(ugettext)) 129 130 config['pylons.app_globals'].genshi_loader = TemplateLoader( 131 self.paths['templates'], auto_reload=True) 132 133 config['pylons.app_globals'].renderer_functions = render_genshi 131 loader = TemplateLoader(search_path=self.paths.templates, 132 auto_reload=True) 133 134 config['pylons.app_globals'].genshi_loader = loader 135 136 self.render_functions.genshi = render_genshi 134 137 135 138 def setup_jinja_renderer(self): … … 143 146 config['pylons.strict_c'] = True 144 147 145 config['pylons.app_globals'].renderer_functionsloa = render_jinja148 self.renderer_functions.jinja = render_jinja 146 149 147 150 def setup_default_renderer(self): … … 177 180 self.setup_routes() 178 181 self.setup_helpers_and_globals() 182 179 183 if self.auth_backend == "sqlalchemy": 180 184 self.setup_sa_auth_backend() … … 183 187 self.setup_mako_renderer() 184 188 185 if 'genshi' in self.renderers: 186 self.setup_genshi_renderer() 189 self.setup_genshi_renderer() 187 190 188 191 if 'jinja' in self.renderers: trunk/tg/controllers.py
r5146 r5151 25 25 HTTPClientError) 26 26 from tg.render import get_tg_vars 27 from tg.render import render as tg_render 27 28 from tw.api import Widget 28 29 from webob.exc import HTTPForbidden … … 215 216 req = pylons.request._current_obj() 216 217 tmpl_context = pylons.tmpl_context._current_obj() 217 buffet = pylons.buffet._current_obj() 218 218 use_legacy_renderer = pylons.config.get("use_legacy_renderer", False) 219 220 if use_legacy_renderer: 221 buffet = pylons.buffet._current_obj() 222 219 223 if template_name is None: 220 224 return response … … 230 234 231 235 # Prepare the engine, if it's not already been prepared. 232 if engine_name not in _configured_engines(): 233 from pylons import config 234 template_options = dict(config).get('buffet.template_options', {}) 235 buffet.prepare(engine_name, **template_options) 236 _configured_engines().add(engine_name) 236 if use_legacy_renderer: 237 if engine_name not in _configured_engines(): 238 from pylons import config 239 template_options = dict(config).get('buffet.template_options', {}) 240 buffet.prepare(engine_name, **template_options) 241 _configured_engines().add(engine_name) 237 242 238 243 #if there is an identity, push it to the pylons template context … … 259 264 260 265 # Render the result. 261 result = buffet.render(engine_name=engine_name, 266 if use_legacy_renderer: 267 result = buffet.render(engine_name=engine_name, 262 268 template_name=template_name, 263 269 include_pylons_variables=False, 264 270 namespace=namespace) 271 else: 272 result = tg_render(template_vars=namespace, 273 template_engine=engine_name, 274 template_name=template_name) 265 275 return result 266 276 trunk/tg/render.py
r5132 r5151 133 133 134 134 def render(template_vars, template_engine=None, template_name=None, **kwargs): 135 render_function = app_globals['renderers'].get(template_engine, None) 135 136 render_function = config['render_functions'].get(template_engine) 137 136 138 if not template_vars: 137 139 template_vars={} 138 t mpl_vars.update(get_tg_vars())140 template_vars.update(get_tg_vars()) 139 141 if not render_function: 140 render_function = config[' tg.default_renderer']141 render_function(template_name, template_vars, **kwargs)142 render_function = config['render_functions'][config['default_renderer']] 143 return render_function(template_name, template_vars, **kwargs) 142 144 143 145 def render_genshi(template_name, template_vars, **kwargs): 144 146 """Render a the template_vars with the Genshi template""" 145 147 template_vars['XML'] = XML 146 return templating.render_genshi(template_name, extra_vars=templat _vars,148 return templating.render_genshi(template_name, extra_vars=template_vars, 147 149 **kwargs) 148 150 trunk/tg/wsgiapp.py
r5140 r5151 1 from pylons.wsgiapp import PylonsApp 1 import sys 2 from pylons.wsgiapp import PylonsApp, class_name_from_module_name 2 3 from pylons.util import class_name_from_module_name 3 4 import sys 4 5 5 6 class TGApp(PylonsApp): 6 7 7 def find_controller(self, controller): 8 8 """Locates a controller by attempting to import it then grab … … 26 26 #attach the package 27 27 pylons_package = self.config['pylons.package'] 28 full_module_name = pylons_package+'.'+controller_path.replace('/', '.')+'.'+controller.replace('/', '.')29 30 print full_module_name28 full_module_name = (pylons_package+'.' + 29 controller_path.replace('/', '.') + 30 '.' + controller.replace('/', '.')) 31 31 32 32 # Hide the traceback here if the import fails (bad syntax and such)