예제 #1
0
    def compile(self, apply_filters=True, request=None, **kwargs):
        """ compiles page template.
        @param `apply_filters`: turns on/off html filtering
        You can pass extra arguments to compiler
        via `kwargs`.

        """
        if not self.body:
            return ''
        request = request or getRequest()
        pt = ZopePageTemplate(id='__%s_tal_body__' % self.context.id)
        pt.pt_edit(self.body, 'text/html')
        context = aq_inner(self.context)
        pt = aq_base(pt).__of__(context)
        # request is taken by acquisition
        compiled = pt(**kwargs)

        if isinstance(compiled, unicode):
            compiled = compiled.encode('utf-8')

        # trasform resolveuid link to absolute path
        if apply_filters:
            _filter = getMultiAdapter((self.context, request),
                                      IFilter,
                                      name="resolveuid_and_caption")
            try:
                compiled = _filter(compiled)
            except AttributeError:
                # Something wrong happend
                # perhaps image scale doesn't exists
                pass
        return compiled.decode('utf-8')
예제 #2
0
 def test_use_as_macro(self):
     use_macro = ZopePageTemplate(id='use_macro').__of__(self.portal)
     use_macro.pt_edit(use_macro_zpt, 'text/html')
     self.assertEqual(
         use_macro(), '\n<div class="left_portlet">\n'
         '\t<div class="left_portlet_title">new title</div>\n'
         '\t<div class="left_portlet_content">PORTLET CONTENT</div>\n'
         '</div>\n')
예제 #3
0
 def test_use_as_macro(self):
     use_macro = ZopePageTemplate(id='use_macro').__of__(self.portal)
     use_macro.pt_edit(use_macro_zpt, 'text/html')
     self.assertEqual(use_macro(),
         '\n<div class="left_portlet">\n'
         '\t<div class="left_portlet_title">new title</div>\n'
         '\t<div class="left_portlet_content">PORTLET CONTENT</div>\n'
         '</div>\n')
예제 #4
0
        def test_template_translation(self):
            tmpl = ZopePageTemplate(id='test_tmpl')
            tmpl.pt_edit('<p i18n:translate="">Home for'
                              ' <span i18n:name="hours">3</span> hours</p>',
                              'text/html')

            self.assertEqual(tmpl.__of__(self.portal)(),
                             u'<p>Home for <span>3</span> hours</p>\n')
 def body_compile(self):
     if not self.body:
         return ''
     pt = ZopePageTemplate(id='__adv_page_tal_body__')
     pt.pt_edit(self.body, 'text/html')
     context = aq_inner(self)
     pt = aq_base(pt).__of__(context)
     # request is taken by acquisition
     return pt()
 def body_compile(self):
     if not self.body:
         return ''
     pt = ZopePageTemplate(id='__adv_page_tal_body__')
     pt.pt_edit(self.body, 'text/html')
     context = aq_inner(self)
     pt = aq_base(pt).__of__(context)
     # request is taken by acquisition
     return pt()
class Assignment(base.Assignment):
    implements(ITALPortlet)

    title = u"" # overrides the readonly property method from the base class

    def __init__(self, title=u"", tal=u""):
        self.pt = ZopePageTemplate(id='__tal_portlet__')
        self.title = title
        self.tal = tal

    def _get_tal(self):
        return self.pt.read()
    def _set_tal(self, value):
        self.pt.pt_edit(value, 'text/html')
    tal = property(_get_tal, _set_tal)
예제 #8
0
class Assignment(base.Assignment):

    title = u""  # overrides the readonly property method from the base class

    def __init__(self, title=u"", tal=u""):
        self.pt = ZopePageTemplate(id='__tal_portlet__')
        self.title = title
        self.tal = tal

    def _get_tal(self):
        return self.pt.read()

    def _set_tal(self, value):
        self.pt.pt_edit(value, 'text/html')

    tal = property(_get_tal, _set_tal)
    def __call__(self):
        """
        Renders the report.
        """

        if not self.data():
            return self.no_results()

        try:
            tal_context = self._getExpressionContext(
                extra={'view': self, },
                tal=True,
            )

            pt = ZopePageTemplate(id='__collective_googleanalytics__')
            pt.pt_edit(self.report.body, 'text/html')
            return pt.__of__(self.context).pt_render(extra_context=tal_context)
        except Exception:
            logger.exception('Error while rendering %r' % self.report.id)
            error_log = getToolByName(self.context, 'error_log')
            error_log.raising(sys.exc_info())
            return self.error()
예제 #10
0
    def __call__(self):
        """
        Renders the report.
        """

        if not self.data():
            return self.no_results()

        try:
            tal_context = self._getExpressionContext(
                extra={'view': self, },
                tal=True,
            )

            pt = ZopePageTemplate(id='__collective_googleanalytics__')
            pt.pt_edit(self.report.body, 'text/html')
            return pt.__of__(self.context).pt_render(extra_context=tal_context)
        except Exception:
            logger.exception('Error while rendering %r' % self.report.id)
            error_log = getToolByName(self.context, 'error_log')
            error_log.raising(sys.exc_info())
            return self.error()