From 26aa91568b9fc600babc13ca5db4d492c089fb20 Mon Sep 17 00:00:00 2001 From: helmutm Date: Fri, 26 Mar 2010 11:17:12 +0000 Subject: [PATCH] provide generic base classes and templates git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3783 fd906abe-77d9-0310-91a1-e0d9ade77398 --- z2/browser/__init__.py | 3 +++ z2/browser/configure.zcml | 19 +++++++++++++++++++ z2/browser/generic.pt | 14 ++++++++++++++ z2/{browser.py => browser/view.py} | 30 ++++++++++++++++++++++++++++-- z2/browser/view_macros.pt | 24 ++++++++++++++++++++++++ z2/configure.zcml | 12 +----------- 6 files changed, 89 insertions(+), 13 deletions(-) create mode 100644 z2/browser/__init__.py create mode 100644 z2/browser/configure.zcml create mode 100644 z2/browser/generic.pt rename z2/{browser.py => browser/view.py} (60%) create mode 100644 z2/browser/view_macros.pt diff --git a/z2/browser/__init__.py b/z2/browser/__init__.py new file mode 100644 index 0000000..38314f3 --- /dev/null +++ b/z2/browser/__init__.py @@ -0,0 +1,3 @@ +""" +$Id$ +""" diff --git a/z2/browser/configure.zcml b/z2/browser/configure.zcml new file mode 100644 index 0000000..f5b6abc --- /dev/null +++ b/z2/browser/configure.zcml @@ -0,0 +1,19 @@ + + + + + + + + + diff --git a/z2/browser/generic.pt b/z2/browser/generic.pt new file mode 100644 index 0000000..01755ca --- /dev/null +++ b/z2/browser/generic.pt @@ -0,0 +1,14 @@ + + + + + +
+ +
+ + + + +
diff --git a/z2/browser.py b/z2/browser/view.py similarity index 60% rename from z2/browser.py rename to z2/browser/view.py index d161617..baeceae 100644 --- a/z2/browser.py +++ b/z2/browser/view.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2009 Helmut Merz helmutm@cy55.de +# Copyright (c) 2010 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 @@ -22,12 +22,38 @@ Base classes for views. $Id$ """ +from zope.app.pagetemplate import ViewPageTemplateFile from zope.cachedescriptors.property import Lazy from zope import component from Products.Five import BrowserView +#from Products.Five.browser.pagetemplatefile import PageTemplateFile -class GenericView(BrowserView): +generic_page = ViewPageTemplateFile('generic.pt') +view_macros = ViewPageTemplateFile('view_macros.pt') + + +class BaseView(BrowserView): + + index = generic_page + default_template = None # specify in subclass + + def __call__(self): + return self.index(self) + + def getMainMacro(self): + return view_macros.macros['main'] + + def getDefaultTemplate(self): + return self.default_template + + def getContentMacro(self): + return self.getDefaultTemplate().macros[self.content_renderer] + + +# generic views for use with generic persistent objects with type-based adapters + +class GenericView(BaseView): name = 'index_html' diff --git a/z2/browser/view_macros.pt b/z2/browser/view_macros.pt new file mode 100644 index 0000000..839b04e --- /dev/null +++ b/z2/browser/view_macros.pt @@ -0,0 +1,24 @@ + + + + + + + + +
+

Top Bar

+
+ +
+ Content +
+ +
+

Footer

+
+ + + + +
diff --git a/z2/configure.zcml b/z2/configure.zcml index 6d22a6b..f63e19c 100644 --- a/z2/configure.zcml +++ b/z2/configure.zcml @@ -14,16 +14,6 @@ --> - - - +