mirror of
https://github.com/wassname/pyramid_formalchemy.git
synced 2026-08-01 12:50:49 +08:00
add a pyramid aware TemplateEngine
This commit is contained in:
@@ -35,9 +35,13 @@ def configure(config, models=None, forms=None, session_factory=None, package=Non
|
||||
'fa.session_factory': session_factory,
|
||||
})
|
||||
|
||||
prefix = prefix.rstrip('/')
|
||||
if not prefix:
|
||||
prefix = '/'
|
||||
|
||||
if use_jquery:
|
||||
config.add_route('fa_admin', '/%s/*traverse' % prefix,
|
||||
config.add_route('fa_admin', '%s/*traverse' % prefix,
|
||||
factory='pyramid_formalchemy.resources.AdminView')
|
||||
else:
|
||||
config.add_route('fa_admin', '/%s/*traverse' % prefix,
|
||||
config.add_route('fa_admin', '%s/*traverse' % prefix,
|
||||
factory='pyramid_formalchemy.resources.AdminView')
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from formalchemy.templates import TemplateEngine as BaseTemplateEngine
|
||||
from formalchemy import fatypes
|
||||
from webhelpers.html import literal
|
||||
from pyramid.renderers import render
|
||||
|
||||
class TemplateEngine(BaseTemplateEngine):
|
||||
"""A template engine aware of pyramid"""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""Do nothing. Almost all the mechanism is deleged to pyramid.renderers"""
|
||||
|
||||
def render(self, name=None, renderer=None, template=None, **kwargs):
|
||||
renderer = renderer or template
|
||||
if renderer is None:
|
||||
name = name.strip('/')
|
||||
if not name.endswith('.pt'):
|
||||
name = '%s.pt' % name
|
||||
renderer = 'fa.jquery:templates/forms/%s' % name
|
||||
kwargs.update(dict(
|
||||
fatypes=fatypes,
|
||||
))
|
||||
return literal(render(renderer, kwargs))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user