[Checkins] SVN: five.grok/trunk/ Use zope 2 templates rather than zope 3 ones.

Martin Aspeli optilude at gmx.net
Sun Aug 3 18:44:30 EDT 2008


Log message for revision 89325:
  Use zope 2 templates rather than zope 3 ones.
  

Changed:
  U   five.grok/trunk/docs/HISTORY.txt
  U   five.grok/trunk/src/five/grok/README.txt
  U   five.grok/trunk/src/five/grok/components.py
  U   five.grok/trunk/src/five/grok/configure.zcml
  A   five.grok/trunk/src/five/grok/overrides.zcml
  A   five.grok/trunk/src/five/grok/templatereg.py
  U   five.grok/trunk/src/five/grok/testing.py
  U   five.grok/trunk/src/five/grok/tests/all/all_test_templates/grokvillageview.pt

-=-
Modified: five.grok/trunk/docs/HISTORY.txt
===================================================================
--- five.grok/trunk/docs/HISTORY.txt	2008-08-03 22:42:00 UTC (rev 89324)
+++ five.grok/trunk/docs/HISTORY.txt	2008-08-03 22:44:30 UTC (rev 89325)
@@ -5,6 +5,10 @@
 
 five.grok - 0.1 Unreleased
 
+    - Added override to make templates use Five's ViewPageTemplateFile instead
+      of the one from zope.app.pagetemplate
+      [optilude]
+
     - Added tests for grok.subscriber directive
       [kamon]
 

Modified: five.grok/trunk/src/five/grok/README.txt
===================================================================
--- five.grok/trunk/src/five/grok/README.txt	2008-08-03 22:42:00 UTC (rev 89324)
+++ five.grok/trunk/src/five/grok/README.txt	2008-08-03 22:44:30 UTC (rev 89325)
@@ -221,6 +221,10 @@
     <div>
     In cave belgian-cave there is 3 cavewomen.
     </div>
+    <div>
+        And just to prove that we have a Zope 2 template, let's do something
+        ugly: <b>amsterdam</b>
+    </div>
     </body>
     </html>
     <BLANKLINE>

Modified: five.grok/trunk/src/five/grok/components.py
===================================================================
--- five.grok/trunk/src/five/grok/components.py	2008-08-03 22:42:00 UTC (rev 89324)
+++ five.grok/trunk/src/five/grok/components.py	2008-08-03 22:44:30 UTC (rev 89325)
@@ -1,3 +1,5 @@
+import martian
+
 from zope import interface
 from zope.annotation.interfaces import IAttributeAnnotatable
 

Modified: five.grok/trunk/src/five/grok/configure.zcml
===================================================================
--- five.grok/trunk/src/five/grok/configure.zcml	2008-08-03 22:42:00 UTC (rev 89324)
+++ five.grok/trunk/src/five/grok/configure.zcml	2008-08-03 22:44:30 UTC (rev 89325)
@@ -4,6 +4,8 @@
     xmlns:zcml="http://namespaces.zope.org/zcml"
     i18n_domain="five.grok">
 
+  <include package="grokcore.view" />
+
   <browser:defaultView
       for="grokcore.component.interfaces.IContext"
       name="index"
@@ -14,5 +16,7 @@
       title="View"
       zcml:condition="not-installed kss.core"
       />
+      
+  <includeOverrides file="overrides.zcml" />
 
 </configure>

Added: five.grok/trunk/src/five/grok/overrides.zcml
===================================================================
--- five.grok/trunk/src/five/grok/overrides.zcml	                        (rev 0)
+++ five.grok/trunk/src/five/grok/overrides.zcml	2008-08-03 22:44:30 UTC (rev 89325)
@@ -0,0 +1,7 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:grok="http://namespaces.zope.org/grok">
+
+  <grok:grok package=".templatereg" />
+
+</configure>

Added: five.grok/trunk/src/five/grok/templatereg.py
===================================================================
--- five.grok/trunk/src/five/grok/templatereg.py	                        (rev 0)
+++ five.grok/trunk/src/five/grok/templatereg.py	2008-08-03 22:44:30 UTC (rev 89325)
@@ -0,0 +1,27 @@
+import grokcore.component
+
+from grokcore.view.components import PageTemplate
+from grokcore.view.interfaces import ITemplateFileFactory
+
+from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
+
+class ZopeTwoPageTemplate(PageTemplate):
+
+    def setFromString(self, string):
+        raise NotImplemented
+
+    def setFromFilename(self, filename, _prefix=None):
+        self._template = ViewPageTemplateFile(filename, _prefix)
+    
+    def render(self, view):
+        namespace = self.getNamespace(view)
+        template = self._template.__of__(view)
+        namespace.update(template.pt_getContext())
+        return template(namespace)
+
+class ZopeTwoPageTemplateFileFactory(grokcore.component.GlobalUtility):
+    grokcore.component.implements(ITemplateFileFactory)
+    grokcore.component.name('pt')
+
+    def __call__(self, filename, _prefix=None):
+        return ZopeTwoPageTemplate(filename=filename, _prefix=_prefix)
\ No newline at end of file

Modified: five.grok/trunk/src/five/grok/testing.py
===================================================================
--- five.grok/trunk/src/five/grok/testing.py	2008-08-03 22:42:00 UTC (rev 89324)
+++ five.grok/trunk/src/five/grok/testing.py	2008-08-03 22:44:30 UTC (rev 89325)
@@ -23,7 +23,9 @@
     config = ConfigurationMachine()
     zcml.do_grok('grokcore.component.meta', config)
     zcml.do_grok('grokcore.view.meta', config)
-    zcml.do_grok('grokcore.view.templatereg', config)
+    # Use the Five override for the page template factory
+    # zcml.do_grok('grokcore.view.templatereg', config)
+    zcml.do_grok('five.grok.templatereg', config)
     zcml.do_grok('five.grok.meta', config)
     zcml.do_grok(module_name, config)
     config.execute_actions()

Modified: five.grok/trunk/src/five/grok/tests/all/all_test_templates/grokvillageview.pt
===================================================================
--- five.grok/trunk/src/five/grok/tests/all/all_test_templates/grokvillageview.pt	2008-08-03 22:42:00 UTC (rev 89324)
+++ five.grok/trunk/src/five/grok/tests/all/all_test_templates/grokvillageview.pt	2008-08-03 22:44:30 UTC (rev 89325)
@@ -3,5 +3,9 @@
 <div tal:repeat="cave view/getCaves">
 In cave <span tal:replace="cave/id"/> there is <span tal:replace="cave/caveWomen"/> cavewomen.
 </div>
+<div>
+    And just to prove that we have a Zope 2 template, let's do something
+    ugly: <b tal:content="here/id" />
+</div>
 </body>
 </html>



More information about the Checkins mailing list