[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