view roundup/cgi/engine_chameleon.py @ 6774:e7b4ad2c57ac

landmarks, skiplink, remove bad attrs, autocomplete search layout.html: Add main and nav landmarks to layout templte. Add skiplink to get to main. Remove Description meta tag from layout template in favor of description metadata in individual files. Remove obsolete border attribute from sourceforge logo. Add autocomplete="on" attribute for search input box. doc/*.txt Remove language attribute from description meta tags. These changes also occur for other files not in this commit. Thse other files have changes to files for the 2.2.0 release not yet tobe committed.
author John Rouillard <rouilj@ieee.org>
date Tue, 12 Jul 2022 15:00:30 -0400
parents 4d20d8251bf2
children b8e63e65d9a8
line wrap: on
line source

"""Templating engine adapter for the Chameleon."""

__docformat__ = 'restructuredtext'

import chameleon

from roundup.cgi.templating import context, TALLoaderBase
from roundup.anypy.strings import s2u


class Loader(TALLoaderBase):
    def __init__(self, dir):
        self.dir = dir
        self.loader = chameleon.PageTemplateLoader(dir)

    def load(self, tplname):
        src, filename = self._find(tplname)
        return RoundupPageTemplate(self.loader.load(src))


class RoundupPageTemplate(object):
    def __init__(self, pt):
        self._pt = pt

    def render(self, client, classname, request, **options):
        c = context(client, self, classname, request)
        c.update({'options': options})

        def translate(msgid, domain=None, mapping=None, default=None):
            result = client.translator.translate(domain, msgid,
                                                 mapping=mapping,
                                                 default=default)
            return s2u(result)

        output = self._pt.render(None, translate, **c)
        return output.encode(client.charset)

    def __getitem__(self, name):
        return self._pt[name]

    def __getattr__(self, name):
        return getattr(self._pt, name)

Roundup Issue Tracker: http://roundup-tracker.org/