provide generic base classes and templates
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3783 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
1b8d510d88
commit
26aa91568b
6 changed files with 89 additions and 13 deletions
3
z2/browser/__init__.py
Normal file
3
z2/browser/__init__.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
"""
|
||||||
|
$Id$
|
||||||
|
"""
|
19
z2/browser/configure.zcml
Normal file
19
z2/browser/configure.zcml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<!-- $Id$ -->
|
||||||
|
|
||||||
|
<configure
|
||||||
|
xmlns:zope="http://namespaces.zope.org/zope"
|
||||||
|
xmlns:browser="http://namespaces.zope.org/browser">
|
||||||
|
|
||||||
|
<browser:page
|
||||||
|
name="index_html"
|
||||||
|
for="cybertools.util.generic.interfaces.IGeneric"
|
||||||
|
class="cybertools.z2.browser.view.GenericView"
|
||||||
|
permission="zope2.View" />
|
||||||
|
|
||||||
|
<browser:page
|
||||||
|
name="create.html"
|
||||||
|
for="cybertools.util.generic.interfaces.IGeneric"
|
||||||
|
class="cybertools.z2.browser.view.GenericAddForm"
|
||||||
|
permission="zope2.ManageProperties" />
|
||||||
|
|
||||||
|
</configure>
|
14
z2/browser/generic.pt
Normal file
14
z2/browser/generic.pt
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<tal:show condition="view/update">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"
|
||||||
|
metal:use-macro="view/getMainMacro">
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div metal:fill-slot="content">
|
||||||
|
<metal:content use-macro="view/getContentMacro" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
</tal:show>
|
|
@ -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
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -22,12 +22,38 @@ Base classes for views.
|
||||||
$Id$
|
$Id$
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from zope.app.pagetemplate import ViewPageTemplateFile
|
||||||
from zope.cachedescriptors.property import Lazy
|
from zope.cachedescriptors.property import Lazy
|
||||||
from zope import component
|
from zope import component
|
||||||
from Products.Five import BrowserView
|
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'
|
name = 'index_html'
|
||||||
|
|
24
z2/browser/view_macros.pt
Normal file
24
z2/browser/view_macros.pt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<metal:main define-macro="main">
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Top Bar</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<metal:content define-slot="content">Content</metal:content>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<p>Footer</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
</metal:main>
|
|
@ -14,16 +14,6 @@
|
||||||
<zope:adapter factory="cybertools.z2.base.BaseFolder"
|
<zope:adapter factory="cybertools.z2.base.BaseFolder"
|
||||||
provides="cybertools.util.generic.interfaces.IGenericFolder" />-->
|
provides="cybertools.util.generic.interfaces.IGenericFolder" />-->
|
||||||
|
|
||||||
<browser:page
|
<include package=".browser" />
|
||||||
name="index_html"
|
|
||||||
for="cybertools.util.generic.interfaces.IGeneric"
|
|
||||||
class="cybertools.z2.browser.GenericView"
|
|
||||||
permission="zope2.View" />
|
|
||||||
|
|
||||||
<browser:page
|
|
||||||
name="create.html"
|
|
||||||
for="cybertools.util.generic.interfaces.IGeneric"
|
|
||||||
class="cybertools.z2.browser.GenericAddForm"
|
|
||||||
permission="zope2.ManageProperties" />
|
|
||||||
|
|
||||||
</configure>
|
</configure>
|
||||||
|
|
Loading…
Add table
Reference in a new issue