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
|
||||
# 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'
|
||||
|
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"
|
||||
provides="cybertools.util.generic.interfaces.IGenericFolder" />-->
|
||||
|
||||
<browser:page
|
||||
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" />
|
||||
<include package=".browser" />
|
||||
|
||||
</configure>
|
||||
|
|
Loading…
Add table
Reference in a new issue