def ux2_metarenderer_factory(info): """ Use a custom renderer to choose between 'classic' and 'ux2' UI. """ # Don't use metarenderer if we're specifcally already looking for # something in karl.ux2. Also don't use metarender for any of the layouts. # We want those to be explicitly chosen from one UI or the other at the # point where they are used. if info.name.endswith('_layout.pt') or info.package is karl.ux2: return renderer_factory(info) # Does this template exist in ux2? name = info.name if ':' in name: name = name[name.index(':') + 1:] if not pkg_resources.resource_exists('karl.ux2', name): # There's not a UX2 version, so just return the same old renderer # you would normally use return renderer_factory(info) # Return a renderer that chooses classic versus ux2 based on cookie # in request. classic_renderer = renderer_factory(info) ux2_renderer = renderer_factory(RendererHelper( name, karl.ux2, info.registry)) def metarenderer(value, system): use_ux2 = system['request'].cookies.get('ux2') == 'true' if use_ux2: return ux2_renderer(value, system) return classic_renderer(value, system) return metarenderer
def __call__(self, info): # Does this template exist name = info.name if ':' in name: name = name[name.index(':') + 1:] for package in reversed(self.packages): if pkg_resources.resource_exists(package.__name__, name): return renderer_factory( RendererHelper(name, package, info.registry)) # default to current package return renderer_factory(info)
def __call__(self, info): # Does this template exist name = info.name if ':' in name: name = name[name.index(':') + 1:] for package in reversed(self.packages): if pkg_resources.resource_exists(package.__name__, name): return renderer_factory(RendererHelper( name, package, info.registry)) # default to current package return renderer_factory(info)
def ux2_metarenderer_factory(info): """ Use a custom renderer to choose between 'classic' and 'ux2' UI. """ # Don't use metarenderer if we're specifcally already looking for # something in karl.ux2. Also don't use metarender for any of the layouts. # We want those to be explicitly chosen from one UI or the other at the # point where they are used. if info.name.endswith('_layout.pt') or info.package is karl.ux2: return renderer_factory(info) # Does this template exist in ux2? name = info.name if ':' in name: name = name[name.index(':') + 1:] ux2_package = karl.ux2 name = ux1_to_ux2_templates.get(name, name) if info.package.__name__.startswith('osi.'): import osi.ux2 as ux2_package if not pkg_resources.resource_exists(ux2_package.__name__, name): # Let karl.ux2 templates be used if not in osi.ux2 ux2_package = karl.ux2 if not pkg_resources.resource_exists(ux2_package.__name__, name): # There's not a UX2 version, so just return the same old renderer # you would normally use return renderer_factory(info) # Return a renderer that chooses classic versus ux2 based on cookie # in request. classic_renderer = renderer_factory(info) ux2_renderer = renderer_factory( RendererHelper(name, ux2_package, info.registry)) def metarenderer(value, system): use_ux2 = system['request'].cookies.get('ux2_kachoo') == 'true' if use_ux2: if 'api' in value: del value['api'] return ux2_renderer(value, system) return classic_renderer(value, system) return metarenderer
def render_form_to_response(template_path, schema, fieldvalues, form_id='contentform', rendering_method='html', **kw): """ Render a ``chameleon.zpt`` form template at the package-relative path (may also be absolute) using the kwargs in ``*kw`` as top-level names, the schema, and the fieldvalues, and return a Webob response.""" renderer = renderer_factory(template_path) body = renderer(kw, {}) if body: rendered = schema.render(body, fieldvalues, form_id, rendering_method) else: # for unit testing rendered = '' renderer.fieldvalues = fieldvalues renderer.form_body = body renderer.form_id = form_id renderer.rendering_method = rendering_method return Response(rendered)
def _callFUT(self, info): from pyramid.chameleon_zpt import renderer_factory return renderer_factory(info)