[Checkins] SVN: z3c.pt/trunk/ Added ViewPageTemplate class to support inline template definitions. Set version to a modest 0.3.1 since this snapshot is entirely compatible with the 0.3 release.

Malthe Borch mborch at gmail.com
Sat Feb 16 07:51:41 EST 2008


Log message for revision 83887:
  Added ViewPageTemplate class to support inline template definitions. Set version to a modest 0.3.1 since this snapshot is entirely compatible with the 0.3 release.

Changed:
  U   z3c.pt/trunk/setup.py
  U   z3c.pt/trunk/z3c/pt/README.txt
  U   z3c.pt/trunk/z3c/pt/__init__.py
  U   z3c.pt/trunk/z3c/pt/pagetemplate.py

-=-
Modified: z3c.pt/trunk/setup.py
===================================================================
--- z3c.pt/trunk/setup.py	2008-02-16 12:49:18 UTC (rev 83886)
+++ z3c.pt/trunk/setup.py	2008-02-16 12:51:40 UTC (rev 83887)
@@ -1,6 +1,6 @@
 from setuptools import setup, find_packages
 
-version = '0.4'
+version = '0.3.1'
 
 setup(name='z3c.pt',
       version=version,

Modified: z3c.pt/trunk/z3c/pt/README.txt
===================================================================
--- z3c.pt/trunk/z3c/pt/README.txt	2008-02-16 12:49:18 UTC (rev 83886)
+++ z3c.pt/trunk/z3c/pt/README.txt	2008-02-16 12:51:40 UTC (rev 83887)
@@ -32,21 +32,49 @@
 
 Keyword-parameters are passed on to the template namespace as-is.
 
-From a view:
+View template classes
+---------------------
 
-  >>> from z3c.pt import ViewPageTemplateFile
-  >>> class MockView(object):
-  ...     template = ViewPageTemplateFile(path+'/view.pt')
-  ...
-  ...     def __init__(self):
-  ...         self.request = u'my request'
-  ...         self.context = u'my context'
+View template classes are provided for templates on the file system
+and for inline templates. The following symbols are defined for the
+template:
 
-  >>> view = MockView()
-  >>> print view.template(test=u'my test')
+  * view
+  * context
+  * request
+  * options
+
+Keyword-parameters are passed on to the template in a dictionary bound
+to the symbol ``options``.
+
+  >>> from z3c.pt import ViewPageTemplate, ViewPageTemplateFile
+  
+  >>> class ViewPageTemplateView(object):
+  ...     view_page_template_file = ViewPageTemplateFile(path+'/view.pt')
+  ...     view_page_template = ViewPageTemplate(open(path+'/view.pt').read())
+  ...     request = u'request'
+  ...     context = u'context'
+
+  >>> view = ViewPageTemplateView()
+
+File system:
+  
+  >>> print view.view_page_template_file(test=u'test')
   <div>
-    <span><MockView object at ...</span>
-    <span>my context</span>
-    <span>my request</span>
-    <span>my test</span>
+    <span><ViewPageTemplateView object at ...</span>
+    <span>context</span>
+    <span>request</span>
+    <span>test</span>
   </div>
+
+Inline:
+  
+  >>> print view.view_page_template(test=u'test')
+  <div>
+    <span><ViewPageTemplateView object at ...</span>
+    <span>context</span>
+    <span>request</span>
+    <span>test</span>
+  </div>
+
+  

Modified: z3c.pt/trunk/z3c/pt/__init__.py
===================================================================
--- z3c.pt/trunk/z3c/pt/__init__.py	2008-02-16 12:49:18 UTC (rev 83886)
+++ z3c.pt/trunk/z3c/pt/__init__.py	2008-02-16 12:51:40 UTC (rev 83887)
@@ -1,3 +1,4 @@
 from pagetemplate import PageTemplate
 from pagetemplate import PageTemplateFile
+from pagetemplate import ViewPageTemplate
 from pagetemplate import ViewPageTemplateFile

Modified: z3c.pt/trunk/z3c/pt/pagetemplate.py
===================================================================
--- z3c.pt/trunk/z3c/pt/pagetemplate.py	2008-02-16 12:49:18 UTC (rev 83886)
+++ z3c.pt/trunk/z3c/pt/pagetemplate.py	2008-02-16 12:51:40 UTC (rev 83887)
@@ -69,16 +69,22 @@
         except OSError:
             return 0
 
-class ViewPageTemplateFile(property):
+class ViewPageTemplate(property):
+    def __init__(self, body):
+        self.template = PageTemplate(body)
+        property.__init__(self, self.render)
+
+    def render(self, view):
+        def template(**kwargs):
+            return self.template.render(view=view,
+                                        context=view.context,
+                                        request=view.request,
+                                        options=kwargs)
+        return template
+    
+class ViewPageTemplateFile(ViewPageTemplate):
     def __init__(self, filename):
         self.template = PageTemplateFile(filename)
+        property.__init__(self, self.render)
 
-        def render(view):
-            def render(**kwargs):
-                return self.template.render(view=view,
-                                            context=view.context,
-                                            request=view.request,
-                                            options=kwargs)
-            return render
         
-        property.__init__(self, render)



More information about the Checkins mailing list