helpers.py
author Tero Marttila <terom@fixme.fi>
Mon, 16 Feb 2009 17:55:09 +0200
changeset 73 1554d3d083b8
parent 50 e4fbf480fbee
permissions -rw-r--r--
add a http.request_url utility function, start writing some unit tests (now for http.Request), fix some issues
"""
    Helper functions for use in templates
"""

import time, cgi

from qmsk.web import config

class Helpers (object) :
    """
        A bunch of useful helper methods for use in templates
    """

    def _bind_ctx (self, ctx) :
        """
            Initialize with the given render context
        """

        self.ctx = ctx

    def now (self) :
        """
            Returns the current date/time
        """

        return time.strftime(config.DATETIME_FMT)

    def copyright_year (self) :
        """
            Returns the current year
        """

        return time.strftime("%Y")

    def validation_notice (self, site_host) :
        """
            Returns a short "Validated XHTML & CSS" link text for the given site hostname
        """

        return 'Validated <a href="http://validator.w3.org/check?uri=http://%(host)s">XHTML 1.0 Strict</a> &amp; <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://%(host)s">CSS 2.1</a>' % dict(
            host = site_host
        )

    def breadcrumb (self, trail, links=True) :
        """
            Returns a nicely formatted breadcrumb tail, optinally with links
        """

        return ' &raquo; '.join(
            (
                '<a href="$site_url/%s">%s</a>' % (page.url, page.title) if links else page.title
            ) for page in trail
        )

    def escape (self, data) :
        """
            Escape data as HTML
        """

        return cgi.escape(data)