[Checkins] SVN: Sandbox/ulif/megrok.chameleon/src/megrok/chameleon/components.py Replace genshi components by chameleon components.
Uli Fouquet
uli at gnufix.de
Sat Feb 21 09:43:47 EST 2009
Log message for revision 96947:
Replace genshi components by chameleon components.
Changed:
U Sandbox/ulif/megrok.chameleon/src/megrok/chameleon/components.py
-=-
Modified: Sandbox/ulif/megrok.chameleon/src/megrok/chameleon/components.py
===================================================================
--- Sandbox/ulif/megrok.chameleon/src/megrok/chameleon/components.py 2009-02-21 14:40:51 UTC (rev 96946)
+++ Sandbox/ulif/megrok.chameleon/src/megrok/chameleon/components.py 2009-02-21 14:43:47 UTC (rev 96947)
@@ -1,6 +1,6 @@
##############################################################################
#
-# Copyright (c) 2006-2007 Zope Corporation and Contributors.
+# Copyright (c) 2006-2009 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
@@ -11,47 +11,40 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-"""Genshi components"""
-import zope.interface
-import genshi.template
-import grokcore.view.components
-import grok
+"""Chameleon page template components"""
+import os
+from chameleon.zpt.template import PageTemplateFile, PageTemplate
+from grokcore.component import GlobalUtility, implements, name
+from grokcore.view import interfaces
+from grokcore.view.components import GrokTemplate
-class GenshiTemplateBase(grokcore.view.components.GrokTemplate):
-
- def render(self, view):
- stream = self._template.generate(**self.getNamespace(view))
- return stream.render(self.result_type)
-
+class ChameleonPageTemplate(GrokTemplate):
+ filename = None
+
def setFromString(self, string):
- self._template = self.cls(string)
-
+ self._filename = None
+ self._template = PageTemplate(string)
+
def setFromFilename(self, filename, _prefix=None):
- loader = genshi.template.TemplateLoader(_prefix)
- self._template = loader.load(filename, cls=self.cls)
+ print "SETFROMFILE"
+ self._filename = filename
+ self._prefix = _prefix
+ self._template = PageTemplate(
+ open(os.path.join(_prefix, filename), 'rb').read())
+ return
-class GenshiMarkupTemplate(GenshiTemplateBase):
-
- result_type = 'xhtml'
- cls = genshi.template.MarkupTemplate
-
-class GenshiTextTemplate(GenshiTemplateBase):
+ def render(self, view):
+ print "RENDER: ", view, dir(self)
+ if self._filename is not None:
+ self.setFromFilename(self._filename, self._prefix)
+ return self._template(**self.getNamespace(view))
- result_type = 'text'
- cls = genshi.template.TextTemplate
-
-class GenshiMarkupTemplateFactory(grok.GlobalUtility):
+class ChameleonPageTemplateFactory(GlobalUtility):
+ implements(grokcore.view.interfaces.ITemplateFileFactory)
+ name('cpt')
- zope.interface.implements(grok.interfaces.ITemplateFileFactory)
- grok.name('g')
-
def __call__(self, filename, _prefix=None):
- return GenshiMarkupTemplate(filename=filename, _prefix=_prefix)
+ print "CALL: ", filename, _prefix
+ return ChameleonPageTemplate(filename=filename, _prefix=_prefix)
-class GenshiTextTemplateFactory(grok.GlobalUtility):
-
- zope.interface.implements(grok.interfaces.ITemplateFileFactory)
- grok.name('gt')
-
- def __call__(self, filename, _prefix=None):
- return GenshiTextTemplate(filename=filename, _prefix=_prefix)
+
More information about the Checkins
mailing list