[Checkins] SVN: five.pt/trunk/ API update.
Malthe Borch
mborch at gmail.com
Sat Nov 15 09:13:35 EST 2008
Log message for revision 92968:
API update.
Changed:
U five.pt/trunk/CHANGES.txt
U five.pt/trunk/src/five/pt/pagetemplate.py
U five.pt/trunk/src/five/pt/tests/locals.pt
U five.pt/trunk/src/five/pt/tests/test_pagetemplatefile.py
-=-
Modified: five.pt/trunk/CHANGES.txt
===================================================================
--- five.pt/trunk/CHANGES.txt 2008-11-15 14:09:59 UTC (rev 92967)
+++ five.pt/trunk/CHANGES.txt 2008-11-15 14:13:34 UTC (rev 92968)
@@ -1,8 +1,9 @@
Changelog
=========
-0.1
----
+HEAD
+----
-- Package structure.
- [hannosch]
+- Updated to latest API. [malthe]
+
+- Package structure. [hannosch]
Modified: five.pt/trunk/src/five/pt/pagetemplate.py
===================================================================
--- five.pt/trunk/src/five/pt/pagetemplate.py 2008-11-15 14:09:59 UTC (rev 92967)
+++ five.pt/trunk/src/five/pt/pagetemplate.py 2008-11-15 14:13:34 UTC (rev 92968)
@@ -5,35 +5,28 @@
from Acquisition import aq_get
from Acquisition import aq_inner
-from Globals import package_home
from Products.PageTemplates.Expressions import SecureModuleImporter
-from z3c.pt.pagetemplate import PageTemplate, PageTemplateFile
+from z3c.pt import pagetemplate
-
-class ViewPageTemplate(property):
- def __init__(self, body, **kwargs):
- self.template = PageTemplate(body, **kwargs)
- property.__init__(self, self.render)
-
-
- def render(self, view, default_namespace=None):
+class ViewPageTemplate(pagetemplate.ViewPageTemplate):
+ def bind(self, view, request=None, macro=None, global_scope=True):
context = aq_inner(view.context)
request = view.request
+
+ # locate physical root
+ method = aq_get(context, 'getPhysicalRoot', None)
+ if method is not None:
+ root = method()
+ else:
+ root = None
- # get the root
- root = None
- meth = aq_get(context, 'getPhysicalRoot', None)
- if meth is not None:
- root = meth()
-
- def template(*args, **kwargs):
- namespace = dict(
+ def render(**kwargs):
+ parameters = dict(
view=view,
context=context,
request=request,
- _context=request,
template=self,
here=context,
container=context,
@@ -42,29 +35,15 @@
modules=SecureModuleImporter,
views=ViewMapper(context, request),
options=kwargs)
- if default_namespace:
- namespace.update(default_namespace)
- return self.template.render(**namespace)
- return template
+ if macro is None:
+ return self.template.render(**parameters)
+ else:
+ return self.template.render_macro(
+ macro, global_scope=global_scope, parameters=parameters)
+
+ return render
- def __call__(self, *args, **kwargs):
- return self.render(*args, **kwargs)
-
-
-class ViewPageTemplateFile(ViewPageTemplate):
-
- def __init__(self, filename, _prefix=None, **kwargs):
- path = self.get_path_from_prefix(_prefix)
- filename = os.path.join(path, filename)
- self.template = PageTemplateFile(filename)
- property.__init__(self, self.render)
-
- def get_path_from_prefix(self, _prefix):
- if isinstance(_prefix, str):
- path = _prefix
- else:
- if _prefix is None:
- _prefix = sys._getframe(2).f_globals
- path = package_home(_prefix)
- return path
+class ViewPageTemplateFile(ViewPageTemplate, pagetemplate.ViewPageTemplateFile):
+ """If ``filename`` is a relative path, the module path of the
+ class where the instance is used to get an absolute path."""
Modified: five.pt/trunk/src/five/pt/tests/locals.pt
===================================================================
--- five.pt/trunk/src/five/pt/tests/locals.pt 2008-11-15 14:09:59 UTC (rev 92967)
+++ five.pt/trunk/src/five/pt/tests/locals.pt 2008-11-15 14:13:34 UTC (rev 92968)
@@ -1,11 +1,10 @@
<div xmlns="http://www.w3.org/1999/xhtml"
xmlns:tal="http://xml.zope.org/namespaces/tal">
- <div tal:replace="string:view:${view.available()}" />
+ <div tal:replace="string:view:${view/available}" />
<div tal:replace="python:'here==context:'+str(here==context)" />
<div tal:replace="python:'here==container:'+str(here==container)" />
- <div tal:replace="string:root:${root.getPhysicalPath()}" />
+ <div tal:replace="string:root:${root/getPhysicalPath}" />
<div tal:replace="string:nothing:${nothing}" />
-
<div tal:define="cgi python:modules['cgi']">
modules:<span tal:replace="python:cgi.escape(view.tagsoup())" />
</div>
Modified: five.pt/trunk/src/five/pt/tests/test_pagetemplatefile.py
===================================================================
--- five.pt/trunk/src/five/pt/tests/test_pagetemplatefile.py 2008-11-15 14:09:59 UTC (rev 92967)
+++ five.pt/trunk/src/five/pt/tests/test_pagetemplatefile.py 2008-11-15 14:13:34 UTC (rev 92968)
@@ -5,14 +5,10 @@
from five.pt.pagetemplate import ViewPageTemplateFile
-
class SimpleView(BrowserView):
-
index = ViewPageTemplateFile('simple.pt')
-
class LocalsView(BrowserView):
-
def available(self):
return 'yes'
@@ -21,14 +17,10 @@
index = ViewPageTemplateFile('locals.pt')
-
class OptionsView(BrowserView):
-
index = ViewPageTemplateFile('options.pt')
-
class TestPageTemplateFile(ZopeTestCase):
-
def afterSetUp(self):
from Products.Five import zcml
import Products.Five
More information about the Checkins
mailing list