From 5f9675c87150787bc3a8fb5ed0b38133c66cdad0 Mon Sep 17 00:00:00 2001 From: helmutm Date: Fri, 24 Nov 2006 16:00:35 +0000 Subject: [PATCH] separated ZPT-based template implementation git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1521 fd906abe-77d9-0310-91a1-e0d9ade77398 --- web/README.txt | 2 +- web/template.py | 8 ++------ web/view.py | 11 ++++------- web/zpt/__init__.py | 3 +++ web/{ => zpt}/content.pt | 0 web/zpt/template.py | 35 +++++++++++++++++++++++++++++++++++ 6 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 web/zpt/__init__.py rename web/{ => zpt}/content.pt (100%) create mode 100644 web/zpt/template.py diff --git a/web/README.txt b/web/README.txt index 2c964ec..202e1b6 100644 --- a/web/README.txt +++ b/web/README.txt @@ -23,5 +23,5 @@ the standard Zope 3 TestRequest. >>> from cybertools.web.view import View >>> view = View(None, TestRequest()) >>> view.render() - u'.........' + u'............' diff --git a/web/template.py b/web/template.py index 05cce5c..b4eb9bd 100644 --- a/web/template.py +++ b/web/template.py @@ -17,23 +17,19 @@ # """ -Generic template base class (if fact it is the ZPT-based type...). +Generic template base class. $Id$ """ -from zope.app.pagetemplate import ViewPageTemplateFile - class Template(object): - zpt = ViewPageTemplateFile('content.pt') - def __init__(self, view): self.view = view self.context = view.context self.request = view.request def render(self, *args, **kw): - return self.zpt(*args, **kw) + return u'' diff --git a/web/view.py b/web/view.py index 06e7cae..e6f626a 100644 --- a/web/view.py +++ b/web/view.py @@ -22,24 +22,21 @@ Generic view base class. $Id$ """ -from cybertools.web.template import Template +from zope.cachedescriptors.property import Lazy +from cybertools.web.zpt.template import Template class View(object): templateFactory = Template - _template = None - def __init__(self, context, request): self.context = context self.request = request - @property + @Lazy def template(self): - if self._template is None and self.templateFactory: - self._template = self.templateFactory(self) - return self._template + return self.templateFactory(self) def render(self, *args, **kw): return self.template.render(*args, **kw) diff --git a/web/zpt/__init__.py b/web/zpt/__init__.py new file mode 100644 index 0000000..38314f3 --- /dev/null +++ b/web/zpt/__init__.py @@ -0,0 +1,3 @@ +""" +$Id$ +""" diff --git a/web/content.pt b/web/zpt/content.pt similarity index 100% rename from web/content.pt rename to web/zpt/content.pt diff --git a/web/zpt/template.py b/web/zpt/template.py new file mode 100644 index 0000000..495a949 --- /dev/null +++ b/web/zpt/template.py @@ -0,0 +1,35 @@ +# +# Copyright (c) 2006 Helmut Merz helmutm@cy55.de +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +""" +ZPT-based template base class. + +$Id$ +""" + +from zope.app.pagetemplate import ViewPageTemplateFile +from cybertools.web import template + + +class Template(template.Template): + + zpt = ViewPageTemplateFile('content.pt') + + def render(self, *args, **kw): + return self.zpt(*args, **kw) +