common/mttransforms.py
changeset 1808 aa09e20dd8c0
parent 1584 323eed40a2b7
child 1977 606923dff11b
--- a/common/mttransforms.py	Tue May 05 17:18:49 2009 +0200
+++ b/common/mttransforms.py	Thu May 14 12:48:11 2009 +0200
@@ -1,7 +1,7 @@
 """mime type transformation engine for cubicweb, based on mtconverter
 
 :organization: Logilab
-:copyright: 2001-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
 """
 __docformat__ = "restructuredtext en"
@@ -11,10 +11,10 @@
 from logilab.mtconverter.engine import TransformEngine
 from logilab.mtconverter.transform import Transform
 from logilab.mtconverter import (register_base_transforms,
-                                 register_pil_transforms, 
+                                 register_pil_transforms,
                                  register_pygments_transforms)
 
-from cubicweb.common.uilib import rest_publish, html_publish, remove_html_tags
+from cubicweb.common.uilib import rest_publish, html_publish
 
 HTML_MIMETYPES = ('text/html', 'text/xhtml', 'application/xhtml+xml')
 
@@ -32,15 +32,6 @@
     def _convert(self, trdata):
         return html_publish(trdata.appobject, trdata.data)
 
-class ept_to_html(Transform):
-    inputs = ('text/cubicweb-page-template',)
-    output = 'text/html'
-    output_encoding = 'utf-8'
-    def _convert(self, trdata):
-        from cubicweb.common.tal import compile_template
-        value = trdata.encode(self.output_encoding)
-        return trdata.appobject.tal_render(compile_template(value), {})
-
 
 # Instantiate and configure the transformation engine
 
@@ -49,13 +40,32 @@
 ENGINE = TransformEngine()
 ENGINE.add_transform(rest_to_html())
 ENGINE.add_transform(html_to_html())
-ENGINE.add_transform(ept_to_html())
+
+try:
+    from cubicweb.ext.tal import compile_template
+except ImportError:
+    HAS_TAL = False
+    from cubicweb.schema import FormatConstraint
+    FormatConstraint.need_perm_formats.remove('text/cubicweb-page-template')
+
+else:
+    HAS_TAL = True
+
+    class ept_to_html(Transform):
+        inputs = ('text/cubicweb-page-template',)
+        output = 'text/html'
+        output_encoding = 'utf-8'
+        def _convert(self, trdata):
+            value = trdata.encode(self.output_encoding)
+            return trdata.appobject.tal_render(compile_template(value), {})
+
+    ENGINE.add_transform(ept_to_html())
 
 if register_pil_transforms(ENGINE, verb=False):
     HAS_PIL_TRANSFORMS = True
 else:
     HAS_PIL_TRANSFORMS = False
-    
+
 try:
     from logilab.mtconverter.transforms import pygmentstransforms
     for mt in ('text/plain',) + HTML_MIMETYPES:
@@ -74,9 +84,9 @@
             return origconvert(self, trdata)
         cls._convert = _convert
     patch_convert(pygmentstransforms.PygmentsHTMLTransform)
-    
+
     HAS_PYGMENTS_TRANSFORMS = True
 except ImportError:
     HAS_PYGMENTS_TRANSFORMS = False
-    
+
 register_base_transforms(ENGINE, verb=False)