[Checkins] SVN: z3c.skin.ready2go/trunk/ Make progress with
ready2go skin implementation
Roger Ineichen
roger at projekt01.ch
Sat Dec 29 12:06:16 EST 2007
Log message for revision 82553:
Make progress with ready2go skin implementation
Improve different concepts
Added a new IReady2GoSkinLayer which which makes it reusable
Use new IReady2GoSkinLayer in IReady2GoBrowserSkin
Use new menu declarations from z3c.menu.ready2go
Improve CSS
Updated buildout setup
Updated tests
Changed:
U z3c.skin.ready2go/trunk/buildout.cfg
U z3c.skin.ready2go/trunk/setup.py
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/README.txt
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/__init__.py
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/__init__.py
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/configure.zcml
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/favicon.png
D z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/menu_context.pt
D z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/menu_global.pt
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/ready2go.css
D z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/sidebar.pt
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/template.pt
D z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/views.py
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/configure.zcml
D z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/demo.py
D z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/demo.zcml
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/ftesting.zcml
A z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/skin.zcml
D z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/testing.py
U z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/tests.py
-=-
Modified: z3c.skin.ready2go/trunk/buildout.cfg
===================================================================
--- z3c.skin.ready2go/trunk/buildout.cfg 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/buildout.cfg 2007-12-29 17:06:16 UTC (rev 82553)
@@ -2,30 +2,278 @@
develop = .
externals/z3c.layer.ready2go
externals/z3c.layer.pagelet
- externals/z3c.skin.pagelet
externals/z3c.menu.ready2go
-parts = demo test coverage
+ externals/z3c.recipe.dev
+ externals/zope.viewlet
+parts = test coverage checker demo
+
[test]
recipe = zc.recipe.testrunner
-eggs = z3c.skin.ready2go [app, test]
+eggs = z3c.skin.ready2go [test]
[coverage]
recipe = zc.recipe.egg
eggs = z3c.coverage
-[zope3]
-location = .
-[ready2go-demo-app]
-recipe = zc.zope3recipes:app
-site.zcml = <include package="z3c.skin.ready2go" file="ftesting.zcml" />
-eggs = z3c.skin.ready2go [app]
+[checker]
+recipe = lovely.recipe:importchecker
+path = src/z3c/skin/ready2go
+
[demo]
-recipe = zc.zope3recipes:instance
-application = ready2go-demo-app
-zope.conf = ${database:zconfig}
+recipe = z3c.recipe.dev:app
+eggs = z3c.skin.ready2go
+server = zserver
+zope.conf =
+ ${var:zconfig}
-[database]
+ interrupt-check-interval 50
+
+ <server>
+ type WSGI-HTTP
+ address 8080
+ </server>
+
+ <eventlog>
+ <logfile>
+ path STDOUT
+ formatter zope.exceptions.log.Formatter
+ </logfile>
+ </eventlog>
+
+ <accesslog>
+ <logfile>
+ path access.log
+ </logfile>
+ <logfile>
+ path STDOUT
+ </logfile>
+ </accesslog>
+
+ devmode on
+
+site.zcml =
+ <!-- Turn on the devmode -->
+ <configure
+ xmlns:meta="http://namespaces.zope.org/meta"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ xmlns:z3c="http://namespaces.zope.org/z3c"
+ xmlns:mail="http://namespaces.zope.org/mail"
+ i18n_domain="zope">
+
+ <!-- Turn on the devmode -->
+ <meta:provides feature="devmode" />
+
+ <!-- load meta configuration for exclude -->
+ <include package="zc.configuration" file="meta.zcml" />
+
+ <!-- exclude will prevent from include -->
+ <exclude package="zope.app.authentication" file="ftpplugins.zcml" />
+ <exclude package="zope.app.authentication" file="groupfolder.zcml" />
+ <exclude package="zope.app.authentication" file="principalfolder.zcml" />
+ <exclude package="zope.app.authentication.browser" />
+ <exclude package="zope.app.authentication.browser" file="configure.zcml" />
+ <exclude package="zope.app.authentication.browser" file="groupfolder.zcml" />
+ <exclude package="zope.app.authentication.browser" file="httpplugins.zcml" />
+ <exclude package="zope.app.authentication.browser" file="principalfolder.zcml" />
+ <exclude package="zope.app.authentication.browser" file="session.zcml" />
+ <exclude package="zope.app.broken" file="browser.zcml" />
+ <exclude package="zope.app.container.browser" />
+ <exclude package="zope.app.error.browser" />
+ <exclude package="zope.app.folder.browser" />
+ <exclude package="zope.app.i18n.browser" />
+ <exclude package="zope.app.securitypolicy.browser" />
+ <exclude package="zope.app.session" file="browser.zcml" />
+ <exclude package="zope.dublincore.browser" />
+
+ <!-- meta configure -->
+ <include package="zope.i18n" file="meta.zcml" />
+ <include package="zope.app.component" file="meta.zcml" />
+ <include package="zope.app.component.browser" file="meta.zcml" />
+ <include package="zope.app.container.browser" file="meta.zcml" />
+ <include package="zope.app.pagetemplate" file="meta.zcml" />
+ <include package="zope.app.publication" file="meta.zcml" />
+ <include package="zope.app.publisher" file="meta.zcml" />
+ <include package="zope.app.security" file="meta.zcml" />
+ <include package="zope.security" file="meta.zcml" />
+ <include package="zope.securitypolicy" file="meta.zcml" />
+ <include package="zope.viewlet" file="meta.zcml" />
+
+ <!-- load 3rd party meta configuration -->
+ <include package="z3c.form" file="meta.zcml" />
+ <include package="z3c.macro" file="meta.zcml" />
+ <include package="z3c.pagelet" file="meta.zcml" />
+ <include package="z3c.template" file="meta.zcml" />
+ <include package="z3c.zrtresource" file="meta.zcml" />
+
+ <!-- vocabulary setup, that's bad and weird, because this is meta configuration -->
+ <include package="zope.app.schema" />
+
+
+ <!-- Database -->
+ <include package="zope.app.appsetup" />
+ <include package="zope.app.zopeappgenerations" />
+
+
+ <!-- zope packages -->
+ <include package="zope.annotation" />
+ <include package="zope.component" />
+ <include package="zope.contentprovider" />
+ <include package="zope.dublincore" />
+ <include package="zope.location" />
+ <include package="zope.securitypolicy" />
+ <include package="zope.session" />
+ <include package="zope.traversing" />
+ <include package="zope.traversing.browser" />
+
+ <!-- Zope server -->
+ <include package="zope.app.server" />
+ <include package="zope.app.twisted" />
+ <include package="zope.app.wsgi" />
+
+ <!-- Broken-object support -->
+ <include package="zope.app.broken" />
+
+
+ <!-- Utilities -->
+ <include package="zope.app.principalannotation" />
+ <include package="zope.error" />
+
+
+ <!-- load zope package configuration -->
+ <include package="zope.app.authentication" />
+ <include package="zope.app.component" />
+ <include package="zope.app.container" />
+ <include package="zope.app.folder" />
+ <include package="zope.app.http" />
+ <include package="zope.app.i18n" />
+ <include package="zope.app.publication" />
+ <include package="zope.app.publisher" />
+ <include package="zope.app.publisher.browser" />
+ <include package="zope.app.security" />
+ <include package="zope.app.securitypolicy" />
+
+
+ <!-- z3c component -->
+ <include package="z3c.form" />
+ <include package="z3c.formui" />
+ <include package="z3c.layer.pagelet" />
+ <include package="z3c.layer.ready2go" />
+ <include package="z3c.macro" />
+ <include package="z3c.pagelet" />
+ <include package="z3c.skin.ready2go" />
+
+
+ <browser:defaultSkin name="Ready2Go" />
+
+ <!-- default view points to TestPage -->
+ <browser:defaultView name="index.html" />
+
+
+ <!-- test pages taken from z3c.layer.pagelet package -->
+ <configure package="z3c.layer.pagelet.tests">
+ <z3c:pagelet
+ for="*"
+ name="index.html"
+ permission="zope.ManageContent"
+ class=".TestPage"
+ layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ />
+
+ <z3c:template
+ for=".TestPage"
+ layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ template="page.pt"
+ />
+ </configure>
+
+ <!-- from zope.app.i18n move this to another package -->
+ <!-- Setup charset negotiation -->
+ <adapter
+ factory="zope.publisher.http.HTTPCharsets"
+ for="zope.publisher.interfaces.http.IHTTPRequest"
+ provides="zope.i18n.interfaces.IUserPreferredCharsets"
+ />
+
+ <!-- Setup charset negotiation --><!-- move this to another package -->
+ <adapter
+ factory="zope.app.publisher.browser.ModifiableBrowserLanguages"
+ for="zope.publisher.interfaces.http.IHTTPRequest"
+ provides="zope.i18n.interfaces.IModifiableUserPreferredLanguages"
+ />
+
+ <class class="zope.publisher.http.HTTPRequest">
+ <implements
+ interface="zope.annotation.interfaces.IAttributeAnnotatable"
+ />
+ </class>
+
+ <!-- load other zcml files -->
+ <include file="securitypolicy.zcml" />
+ <include file="principals.zcml" />
+
+ </configure>
+
+principals.zcml =
+ <unauthenticatedPrincipal
+ id="zope.anybody"
+ title="Unauthenticated User"
+ />
+
+ <unauthenticatedGroup
+ id="zope.Anybody"
+ title="Unauthenticated Users"
+ />
+
+ <authenticatedGroup
+ id="zope.Authenticated"
+ title="Authenticated Users"
+ />
+
+ <everybodyGroup
+ id="zope.Everybody"
+ title="All Users"
+ />
+
+ <principal
+ id="zope.manager"
+ title="Manager"
+ login="Manager"
+ password="password"
+ />
+
+ <grant
+ role="zope.Manager"
+ principal="zope.manager"
+ />
+
+
+securitypolicy.zcml =
+ <include package="zope.securitypolicy" />
+
+ <securityPolicy
+ component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+ />
+
+ <role id="zope.Anonymous" title="Everybody"
+ description="All users have this role implicitly" />
+ <role id="zope.Manager" title="Site Manager" />
+ <role id="zope.Member" title="Site Member" />
+
+ <!-- Replace the following directive if you don't want public access -->
+ <grant
+ permission="zope.View"
+ role="zope.Anonymous"
+ />
+ <grant
+ permission="zope.app.dublincore.view"
+ role="zope.Anonymous"
+ />
+
+ <grantAll role="zope.Manager" />
+
+
+[var]
recipe = zc.recipe.filestorage
Modified: z3c.skin.ready2go/trunk/setup.py
===================================================================
--- z3c.skin.ready2go/trunk/setup.py 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/setup.py 2007-12-29 17:06:16 UTC (rev 82553)
@@ -48,29 +48,14 @@
packages = find_packages('src'),
include_package_data = True,
package_dir = {'':'src'},
- namespace_packages = ['z3c'],
+ namespace_packages = ['z3c', 'z3c.skin'],
extras_require = dict(
- app = ['zope.app.component',
- 'zope.app.pagetemplate',
- 'zope.app.publisher',
- 'zope.app.publication',
- 'zope.app.container',
- 'zope.app.testing',
- 'zope.app.zapi',
- 'zope.contentprovider',
- 'zope.i18n',
- 'zope.i18nmessageid',
- 'zope.interface',
- 'zope.schema',
- 'zope.security',
- 'zope.testing',
- 'zope.traversing',
- 'zope.viewlet',
- ],
- test = ['z3c.coverage',
- 'z3c.etestbrowser',
- 'zope.app.testing',
- 'zope.app.securitypolicy'],
+ test = [
+ 'z3c.coverage',
+ 'z3c.etestbrowser',
+ 'zope.app.testing',
+ 'zope.app.securitypolicy',
+ ],
),
install_requires = [
'setuptools',
@@ -102,8 +87,8 @@
'z3c.zrtresource',
'z3c.layer.pagelet',
'z3c.layer.ready2go',
- 'z3c.skin.pagelet',
'z3c.menu.ready2go',
+ 'zc.configuration',
],
zip_safe = False,
)
\ No newline at end of file
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/README.txt
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/README.txt 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/README.txt 2007-12-29 17:06:16 UTC (rev 82553)
@@ -2,19 +2,19 @@
README
======
-The z3c.skin.ready2go package provides a skin including the layer called
+The z3c.skin.ready2go package provides a skin based on the called
IReady2GoBrowserLayer which is defined in z3c.layer.ready2go.
Note, this skin is only registered in the test layer. You can use this
skin as a base for your own custom skins or just use it as a sample for build
you own skins.
-Open a browser and access our test skin called ``TestSkin``:
+Open a browser and access our test skin called ``Ready2Go``:
>>> from z3c.etestbrowser.testing import ExtendedTestBrowser
>>> user = ExtendedTestBrowser()
>>> user.addHeader('Accept-Language', 'en')
- >>> user.open('http://localhost/++skin++TestSkin')
+ >>> user.open('http://localhost/++skin++Ready2Go')
Let's see how such a skin looks like:
@@ -23,12 +23,23 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
+ <base href="http://localhost/++skin++Ready2Go/@@index.html" />
+ <BLANKLINE>
<title>Ready2go</title><meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />
+ <script type="text/javascript">
+ var contexturl = 'http://localhost/++skin++Ready2Go';
+ var viewurl = 'http://localhost/++skin++Ready2Go/@@index.html';</script>
+ <script type="text/javascript"
+ src="http://localhost/++skin++Ready2Go/@@/ready2go.js">
+ </script>
<BLANKLINE>
+ <link type="text/css" rel="stylesheet"
+ href="http://localhost/++skin++Ready2Go/@@/ready2go.css"
+ media="all" />
<BLANKLINE>
<link rel="icon" type="image/png"
- href="http://localhost/++skin++TestSkin/@@/favicon.png" />
+ href="http://localhost/++skin++Ready2Go/@@/favicon.png" />
</head>
<body>
<div id="layoutWrapper">
@@ -38,38 +49,39 @@
<BLANKLINE>
</div>
<div id="user">
- User: Manager
+ <span>User:</span>
+ <span>Fallback unauthenticated principal</span>
+
+ <a href="http://localhost/++skin++Ready2Go/logout.html"
+ style="font-size: 100%">[Logout]</a>
</div>
<img id="logo"
- src="http://localhost/++skin++TestSkin/@@/img/logo.gif"
+ src="http://localhost/++skin++Ready2Go/@@/img/logo.gif"
width="53" height="51" alt="logo" />
</div>
<div id="menuContainer">
- <ul>
- <li class="selected">
- <a href="http://localhost/++skin++TestSkin/index.html"><span>Home</span></a>
- </li>
<BLANKLINE>
- </ul>
+ <div id="addingMenuContainer">
+ <ul id="addingMenu" class="addingMenu">
+ <li class="menuSeparatorLeft">
+ <a href="#">Adding</a>
<BLANKLINE>
- </div>
- <div id="naviContainer" class="sortable">
- Sidebar
+ </li>
+ </ul>
+ </div>
+ </div>
+ <div id="naviContainer">
<BLANKLINE>
</div>
<div id="contentContainer">
- <div id="tabContainer"></div>
+ <div id="contextMenuContainer">
+ <BLANKLINE>
+ <div id="contextMenuContainerBottom">
+
+ </div>
+ </div>
<div id="content">
- <div>
- <br />
- <br />
- <h3>A system error occurred</h3>
- <br />
- <b>Please contact the administrator.</b>
- <a href="javascript:history.back(1);">
- Go back and try another URL.
- </a>
- </div>
+ test page
<BLANKLINE>
</div>
</div>
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/__init__.py
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/__init__.py 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/__init__.py 2007-12-29 17:06:16 UTC (rev 82553)
@@ -16,39 +16,12 @@
"""
__docformat__ = "reStructuredText"
-from zope.viewlet.interfaces import IViewletManager
-
import z3c.layer.ready2go
-class IReady2GoBrowserSkin(z3c.layer.ready2go.IReady2GoBrowserLayer):
- """The Ready2Go skin is not registered by default.
-
- This could be done in your project or inherit from this layer and
- register your own.
-
- """
+class IReady2GoSkinLayer(z3c.layer.ready2go.IReady2GoBrowserLayer):
+ """The Ready2Go skin layer offers base UI components."""
-class ICSS(IViewletManager):
- """CSS viewlet manager."""
-
-
-class IJavaScript(IViewletManager):
- """JavaScript viewlet manager."""
-
-
-class IBreadcrumb(IViewletManager):
- """Breadcrumb viewlet manager."""
-
-
-class IGlobalMenu(IViewletManager):
- """GlobalMenu viewlet manager."""
-
-
-class IContextMenu(IViewletManager):
- """ContextMenu viewlet manager."""
-
-
-class ISideBar(IViewletManager):
- """SideBar viewlet manager."""
+class IReady2GoBrowserSkin(IReady2GoSkinLayer):
+ """The Ready2Go browser skin is accessible as named ´´Ready2Go´´ skin."""
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/__init__.py
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/__init__.py 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/__init__.py 2007-12-29 17:06:16 UTC (rev 82553)
@@ -14,3 +14,17 @@
"""
$Id: __init__.py 72088 2007-01-18 01:09:33Z rogerineichen $
"""
+__docformat__ = "reStructuredText"
+
+from zope.viewlet import viewlet
+from z3c.pagelet import browser
+
+
+class IndexPagelet(browser.BrowserPagelet):
+ """Default index view."""
+
+
+Ready2GoCSS = viewlet.CSSViewlet('ready2go.css')
+
+
+Ready2GoJavaScript = viewlet.JavaScriptViewlet('ready2go.js')
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/configure.zcml
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/configure.zcml 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/configure.zcml 2007-12-29 17:06:16 UTC (rev 82553)
@@ -8,70 +8,86 @@
<zrt-resource
name="ready2go.css"
file="ready2go.css"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
/>
+ <zrt-resource
+ name="ready2go.js"
+ file="ready2go.js"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
+ />
+
<resource
name="favicon.png"
file="favicon.png"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
/>
<resourceDirectory
name="img"
directory="img"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
/>
<!-- viewlet managers -->
<viewletManager
name="ICSS"
class="z3c.viewlet.manager.WeightOrderedViewletManager"
- provides="z3c.skin.ready2go.ICSS"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ provides="z3c.layer.ready2go.ICSS"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
permission="zope.Public"
/>
<viewletManager
name="IJavaScript"
- provides="z3c.skin.ready2go.IJavaScript"
+ provides="z3c.layer.ready2go.IJavaScript"
class="z3c.viewlet.manager.WeightOrderedViewletManager"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
permission="zope.Public"
/>
<viewletManager
name="IBreadcrumb"
- provides="z3c.skin.ready2go.IBreadcrumb"
+ provides="z3c.layer.ready2go.IBreadcrumb"
class="z3c.viewlet.manager.WeightOrderedViewletManager"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
permission="zope.Public"
/>
- <viewletManager
- name="IGlobalMenu"
- provides="z3c.skin.ready2go.IGlobalMenu"
- class="z3c.menu.ready2go.manager.MenuManager"
- template="menu_global.pt"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
- permission="zope.Public"
- />
+ <configure package="z3c.menu.ready2go">
+ <viewletManager
+ name="IGlobalMenu"
+ provides=".IGlobalMenu"
+ class=".manager.MenuManager"
+ template="menu.pt"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
+ permission="zope.Public"
+ />
- <viewletManager
- name="IContextMenu"
- provides="z3c.skin.ready2go.IContextMenu"
- class="z3c.menu.ready2go.manager.MenuManager"
- template="menu_context.pt"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
- permission="zope.Public"
- />
+ <viewletManager
+ name="IContextMenu"
+ provides="z3c.menu.ready2go.IContextMenu"
+ class=".manager.MenuManager"
+ template="menu.pt"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
+ permission="zope.Public"
+ />
+ <viewletManager
+ name="IAddMenu"
+ provides="z3c.menu.ready2go.IAddMenu"
+ class=".manager.MenuManager"
+ template="menu.pt"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
+ permission="zope.Public"
+ />
+ </configure>
+
<viewletManager
name="ISideBar"
- provides="z3c.skin.ready2go.ISideBar"
- class="z3c.viewlet.manager.WeightOrderedViewletManager"
- template="sidebar.pt"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ provides="z3c.layer.ready2go.ISideBar"
+ class="zope.viewlet.manager.ConditionalViewletManager"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
permission="zope.Public"
/>
@@ -79,7 +95,7 @@
<!-- layout -->
<z3c:layout
for="*"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
template="template.pt"
/>
@@ -88,26 +104,35 @@
<viewlet
name="ready2go.css"
for="*"
- manager="z3c.skin.pagelet.ICSS"
- class=".views.Ready2GoCSS"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ manager="z3c.layer.ready2go.ICSS"
+ class=".Ready2GoCSS"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
permission="zope.Public"
/>
- <!-- simple index.html view -->
+ <viewlet
+ name="ready2go.js"
+ for="*"
+ manager="z3c.layer.ready2go.IJavaScript"
+ class=".Ready2GoJavaScript"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
+ permission="zope.Public"
+ />
+
+
+ <!-- default index.html view -->
<z3c:pagelet
name="index.html"
for="*"
- class=".views.IndexPagelet"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ class=".IndexPagelet"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
permission="zope.View"
/>
- <!-- index template -->
<z3c:template
for="*"
template="index.pt"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ layer="z3c.skin.ready2go.IReady2GoSkinLayer"
/>
</configure>
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/favicon.png
===================================================================
(Binary files differ)
Deleted: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/menu_context.pt
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/menu_context.pt 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/menu_context.pt 2007-12-29 17:06:16 UTC (rev 82553)
@@ -1,6 +0,0 @@
-<div id="contextMenu" tal:define="viewlets view/viewlets">
-<ul tal:condition="viewlets">
- <tal:block repeat="viewlet viewlets"
- content="structure viewlet/render" />
-</ul>
-</div>
Deleted: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/menu_global.pt
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/menu_global.pt 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/menu_global.pt 2007-12-29 17:06:16 UTC (rev 82553)
@@ -1,6 +0,0 @@
-<tal:block define="viewlets view/viewlets">
-<ul tal:condition="viewlets">
- <tal:block repeat="viewlet viewlets"
- content="structure viewlet/render" />
-</ul>
-</tal:block>
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/ready2go.css
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/ready2go.css 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/ready2go.css 2007-12-29 17:06:16 UTC (rev 82553)
@@ -22,6 +22,11 @@
border: 0;
}
+a {
+ color: #D91813;
+ text-decoration: none;
+}
+
a:link {
color: #D91813;
text-decoration: none;
@@ -36,7 +41,48 @@
color: #8C100D;
}
+fieldset {
+ padding: 5px;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: Black;
+ clear: left;
+ font: 100% bold Verdana, Helvetica, Arial, sans-serif;
+ margin: 0;
+ padding-top: 0.5em;
+}
+
+h1 {
+ font-size: 160%;
+}
+
+h2 {
+ font-size: 140%;
+}
+
+h3 {
+ height: 20px;
+ font-size: 120%;
+ background-color: #DDDCD0;
+ padding: 2px 0px 0px 5px;
+}
+
+h4 {
+ color: #777777;
+ font-size: 100%;
+ font-weight: bold;
+}
+
+h5 {
+ font-size: 90%;
+}
+
+h6 {
+ font-size: 80%;
+}
+
/* [ layout ]---------------------------------------------------------------- */
div#layoutWrapper {
@@ -63,11 +109,11 @@
border-top: solid white 1px;
margin: 0px;
padding: 0px;
- background: #3112C2 url(../img/topBG.jpg) repeat-x top left;
+ background: #3112C2 url(./img/topBG.jpg) repeat-x top left;
}
img#logo {
- padding: 0px 0px 0px 10px;
+ padding: 0px;
}
div#user {
@@ -75,7 +121,7 @@
right: 10px;
position: absolute;
color: white;
- padding: 0px 10px 0px 0px;
+ padding: 0px 0px 0px 0px;
}
div#user a {
@@ -83,189 +129,258 @@
}
+/* [ breadcrumbs ]--------------------------------------------------------- */
+
+div#breadcrumbs {
+ top: 65px;
+ left: 10px;
+ position: absolute;
+ color: #DDDDDD;
+ font-size: 11px;
+ padding: 10px 0px 10px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+#breadcrumbs a {
+ color: #DDDDDD;
+ text-decoration: none;
+}
+
+#breadcrumbs a:hover {
+ color: #FFFFFF;
+}
+
+
/*---[ menu ]----------------------------------------------------------------*/
#menuContainer {
- float: left;
- width: 941px;
height: 33px;
- background: #3112C2 url(../img/menuBG.jpg) repeat-x top left;
+ background: #3112C2 url(./img/menuBG.jpg) repeat-x top left;
margin: 0;
padding: 0;
}
+
+#menuContainer ul {
+ margin: 0;
+ padding: 0;
+}
+
#menuContainer li {
float: left;
- margin: 0;
- padding: 0 1px 0 0;
+ margin: 0px;
+ padding: 0px 1px 0px 0px;
list-style: none;
- background: url(../img/menuSeparator.gif) no-repeat top right;
}
+#menuContainer li.menuSeparatorRight {
+ background: url(./img/menuSeparator.gif) no-repeat top right;
+}
+
+#menuContainer li.menuSeparatorLeft {
+ background: url(./img/menuSeparator.gif) no-repeat top left;
+}
+
#menuContainer a {
float: left;
padding: 9px 9px;
- text-decoration: none;
- border-bottom: none;
color: #ffffff;
}
#menuContainer a:hover {
color: #ffffff;
- background: #230D8C;
+ background: #000266;
}
#menuContainer a.selected {
color: #8C100D;
- background: #230D8C;
+ background: #000266;
}
+#menuContainer li.selected a,
+#menuContainer li.selected span {
+ background: #000266;
+}
-/* [ breadcrumbs ]--------------------------------------------------------- */
-div#breadcrumbs {
- top: 65px;
- left: 10px;
+/*---[ adding menu ]---------------------------------------------------------*/
+
+#addingMenuContainer {
+ float: right;
+ width: 110px;
+ margin: 0;
+ padding: 0;
+}
+
+.addingMenu {
+ width: 110px;
+ font-family: Arial, Helvetica, sans-serif;
+ z-index: 100;
+ position: relative;
+ margin: 0;
+ padding: 0;
+}
+
+.addingMenu a {
+ white-space: nowrap;
+ width: 85px;
+}
+
+.addingMenu ul {
+ width: 105px;
+ list-style: none;
position: absolute;
- color: #DDDDDD;
- font-size: 11px;
- padding: 10px 0px 10px 0px;
- margin: 0px 0px 0px 10px;
+ top: -999em;
+ left: -1px;
+ margin: 0;
+ padding: 0;
}
-#breadcrumbs a {
- color: #DDDDDD;
- text-decoration: none;
+.addingMenu li {
+ float: left;
+ margin: 0;
+ padding: 0;
+ position: relative;
+ display: block;
}
-#breadcrumbs a:hover {
- color: #FFFFFF;
+.addingMenu li:hover ul,
+.addingMenu li.addingMenuHover ul {
+ top: 30px;
+ background: #290FA4;
}
/*---[ navigation ]----------------------------------------------------------*/
#naviContainer {
- width: 225px;
- float: left;
- color: #DFDFDF;
- padding: 5px;
+ width: 225px;
+ color: #DFDFDF;
+ padding: 0px;
+ margin: 0px;
+ position: absolute;
+ left: 5px;
+ top: 160px;
}
#naviContainer a {
- color: #FF9900;
+ color: #FF9900;
}
-div.boxSpacer {
- height: 10px;
- clear: both;
-}
-
div.naviBox {
- background-color: #290FA4;
+ background-color: #290FA4;
+ padding: 0px 0px 7px 0px;
+ margin: 0px;
}
div.naviBox .naviBoxHeader {
- color: #FFFFFF;
- height: 20px;
- padding: 5px 5px 0px 10px;
+ color: #FFFFFF;
+ height: 24px;
+ padding: 5px 0px 0px 10px;
+ margin: 0px;
}
-div.naviBox .naviBoxHeader img.icon {
- float: right;
+div.naviBox .naviBoxBody {
+ color: #DFDFDF;
+ padding: 5px 5px 0px 10px;
+ margin: 0px;
}
-div.naviBox .naviBoxBody {
- color: #DFDFDF;
- padding: 0px 5px 10px 10px;
+div.boxSpacer {
+ height: 10px;
+ background-color: #F3F3EE;
+ clear: both;
}
/*---[ content ]-------------------------------------------------------------*/
#contentContainer {
- width: 689px;
- float: right;
- margin: 0;
- padding: 5px;
+ margin: 0;
+ padding: 5px 0px 0px 250px;
}
#content {
- padding: 10px 0px 0px 10px;
+ margin: 0;
+ padding: 0;
}
+/*---[ menu tabs ]-----------------------------------------------------------*/
-/*---[ tab ]----------------------------------------------------------------*/
-
-#tabContainer {
- padding: 0;
- margin: 0;
+#contextMenuContainer {
+ padding: 0;
+ margin: 0;
+ background: transparent;
+ voice-family: "\"}\"";
+ voice-family: inherit;
}
-#tabContainer ul {
- width: 100%;
- margin: 0;
- padding: 0;
- list-style: none;
+#contextMenuContainer ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
}
-#tabContainer li {
- display: inline;
- margin: 0px 2px 0px 0px;
- padding: 0;
+#contextMenuContainer li {
+ display: inline;
+ margin: 0;
+ padding: 0;
}
-#tabContainer a {
- float: left;
- color: #290FA4;
- background-color: #FFFFFF;
- border: 1px solid #290FA4;
- border-bottom: 0px;
- margin: 0px 2px 0px 10px;
- padding: 0px 0px 1px 3px;
- text-decoration: none;
- letter-spacing: 1px;
+#contextMenuContainer a {
+ float: left;
+ color: #FFFFFF;
+ background: #290FA4 url(./img/menuTabsLeft.gif) no-repeat left top;
+ margin: 0px 2px 0px 0px;
+ padding: 0px 0px 1px 3px;
+ text-decoration: none;
+ letter-spacing: 1px;
}
-#tabContainer a span {
- float: left;
- display: block;
- padding: 4px 9px 2px 6px;
+#contextMenuContainer a span {
+ float: left;
+ display: block;
+ background: transparent url(./img/menuTabsRight.gif) no-repeat right top;
+ padding: 4px 9px 2px 6px;
}
-#tabContainer a span {
- float: none;
+#contextMenuContainer a span {
+ float: none;
}
-#tabContainer a:hover {
- color: #FFFFFF;
- background-color: #290FA4;
+#contextMenuContainer a:hover {
+ color: #FFFFFF;
+ background-color: #000266;
}
-#tabContainer a:hover span {
- color: #FFFFFF;
- background-color: #290FA4;
+#contextMenuContainer a.selected {
+ color: #FFFFFF;
+ background-color: #000266;
}
-#tabContainer .current a, #tabContainer .current span {
- color: white;
- background-color: #290FA4;
+#contextMenuContainer li.selected a,
+#contextMenuContainer li.selected span {
+ color: #FFFFFF;
+ background-color: #000266;
}
-#tabContainerBottom {
- clear: both;
- margin: 0;
- padding: 0;
- width: 100%;
- height: 18px;
- line-height: 18px;
- background: #290FA4;
+#contextMenuContainerBottom {
+ clear: both;
+ padding: 0;
+ margin: 0;
+ width: 100%;
+ height: 20px;
+ line-height: 20px;
+ background: #290FA4;
+ border-top: 1px solid #FFFFFF; /*Remove this to remove border between bar and tabs*/
}
+
/*---[ table ]---------------------------------------------------------------*/
/* Styles for tables that act as lists of objects. */
table.list {
+ width: 100%;
margin: 0;
padding: 0;
border: 0;
@@ -301,13 +416,21 @@
}
table.list th {
- background-color: #E6E1D9;
- border-color: #ffffff;
+ color: #666666;
+ border-color: #999999;
border-bottom-width: 1px;
border-bottom-style: solid;
padding: 3px 4px;
text-align: left;
+ background: url(./img/tableHeaderBG.gif) repeat-x left top;
}
+table.list thead.verticaltext th {
+ text-align: left;
+ writing-mode: tb-rl;
+ filter: flipv fliph;
+ white-space: nowrap;
+ background: transparent;
+}
table.list th.sorted-on {
background-color: #D5CCBD;
@@ -399,14 +522,13 @@
padding-top: 10px;
}
-.button{
+.submitWidget{
cursor: pointer;
border: outset 1px #ccc;
background: #999999;
- color: #666666;
- font-weight: bold;
+ color: #333333;
padding: 1px 2px;
- background: url(../img/buttonBG.gif) repeat-x left top;
+ background: url(./img/buttonBG.gif) repeat-x left top;
}
.clear {
Deleted: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/sidebar.pt
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/sidebar.pt 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/sidebar.pt 2007-12-29 17:06:16 UTC (rev 82553)
@@ -1 +0,0 @@
-Sidebar
\ No newline at end of file
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/template.pt
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/template.pt 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/template.pt 2007-12-29 17:06:16 UTC (rev 82553)
@@ -6,12 +6,19 @@
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />
-<tal:block replace="structure provider:ICSS" />
-<tal:block replace="structure provider:IJavaScript" />
+<script type="text/javascript"
+ tal:define="contexturl context/@@absolute_url;
+ viewurl request/URL"
+ tal:content="string:
+ var contexturl = '${contexturl}';
+ var viewurl = '${viewurl}';">
+</script>
+<script tal:replace="structure provider:IJavaScript"> </script>
+<style tal:replace="structure provider:ICSS"> </style>
<link rel="icon" type="image/png"
tal:attributes="href context/++resource++favicon.png" />
</head>
-<body>
+<body tal:define="applicationURL request/getApplicationURL">
<div id="layoutWrapper">
<div id="layoutContainer">
<div id="headerContainer">
@@ -23,40 +30,53 @@
</tal:block>
</div>
<div id="user">
- User: Manager
+ <span i18n:translate="">User:</span>
+ <span tal:content="request/principal/title">Manager</span>
+
+ <a href="" style="font-size: 100%"
+ tal:attributes="href string:${applicationURL}/logout.html"
+ i18n:translate="">[Logout]</a>
</div>
<img id="logo" src="logo.gif" width="53" height="51" alt="logo"
- tal:attributes="src context/++resource++img/logo.gif" />
+ tal:attributes="src context/++resource++img/logo.gif" />
</div>
- <div id="menuContainer" tal:content="structure provider:IGlobalMenu">
- <ul>
+ <div id="menuContainer">
+ <ul tal:replace="structure provider:IGlobalMenu">
<li>
<a href="#" class="selected">Menu item</a>
</li>
- <li>
- <a href="#">Menu item</a>
- </li>
- <li>
- <a href="#">Menu item</a>
- </li>
</ul>
+ <div id="addingMenuContainer">
+ <ul id="addingMenu" class="addingMenu">
+ <li class="menuSeparatorLeft">
+ <a href="#" i18n:translate="">Adding</a>
+ <ul tal:replace="structure provider:IAddMenu">
+ <li>
+ <a href="#">Menu item</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
</div>
- <div id="naviContainer" class="sortable">
- <tal:block replace="structure provider:ISideBar" />
+ <div id="naviContainer">
+ <tal:block replace="structure provider:ISideBar">sidebar</tal:block>
</div>
<div id="contentContainer">
- <div id="tabContainer" tal:content="structure provider:IContextMenu">
- <li style="margin-left: 1px" id="current">
- <a href="#">
- <span>Title</span></a>
- </li>
- <li style="margin-left: 1px">
- <a href="#">
- <span>Title</span></a>
- </li>
+ <div id="contextMenuContainer">
+ <ul tal:replace="structure provider:IContextMenu">
+ <li style="margin-left: 1px">
+ <a href="#" title="Home">
+ <span>Home</span>
+ </a>
+ </li>
+ </ul>
+ <div id="contextMenuContainerBottom">
+
+ </div>
</div>
<div id="content">
- <tal:block content="structure provider:pagelet">content</tal:block>
+ <tal:block replace="structure provider:pagelet">pagelet provider</tal:block>
</div>
</div>
</div>
Deleted: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/views.py
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/views.py 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/browser/views.py 2007-12-29 17:06:16 UTC (rev 82553)
@@ -1,22 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2006 by us.
-#
-##############################################################################
-"""
-$Id: views.py 72088 2007-01-18 01:09:33Z rogerineichen $
-"""
-__docformat__ = "reStructuredText"
-
-from zope.viewlet import viewlet
-from z3c.pagelet import browser
-
-
-class IndexPagelet(browser.BrowserPagelet):
- """Default index view."""
-
-
-Ready2GoCSS = viewlet.CSSViewlet('ready2go.css')
-
-
-Ready2GoJavaScript = viewlet.JavaScriptViewlet('ready2go.js')
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/configure.zcml
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/configure.zcml 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/configure.zcml 2007-12-29 17:06:16 UTC (rev 82553)
@@ -2,14 +2,13 @@
xmlns="http://namespaces.zope.org/zope"
i18n_domain="z3c">
- <!-- just registered as long we don't have a demo -->
<interface
- interface="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ interface="z3c.skin.ready2go.IReady2GoSkinLayer"
type="zope.publisher.interfaces.browser.IBrowserSkinType"
- name="Ready2Go"
/>
+ <include file="skin.zcml" />
+
<include package=".browser" />
- <include file="demo.zcml" />
</configure>
Deleted: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/demo.py
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/demo.py 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/demo.py 2007-12-29 17:06:16 UTC (rev 82553)
@@ -1,26 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2006 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-$Id: __init__.py 72088 2007-01-18 01:09:33Z rogerineichen $
-"""
-__docformat__ = "reStructuredText"
-
-from z3c.menu.ready2go import item
-
-
-class HomeMenuItem(item.MenuItem):
- """Home menu."""
-
- viewName = 'index.html'
- weight = 1
Deleted: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/demo.zcml
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/demo.zcml 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/demo.zcml 2007-12-29 17:06:16 UTC (rev 82553)
@@ -1,15 +0,0 @@
-<configure
- xmlns:zope="http://namespaces.zope.org/zope"
- xmlns="http://namespaces.zope.org/browser"
- i18n_domain="z3c">
-
- <viewlet
- name="Home"
- for="*"
- class=".demo.HomeMenuItem"
- manager="z3c.skin.ready2go.IGlobalMenu"
- layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
- permission="zope.Public"
- />
-
-</configure>
\ No newline at end of file
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/ftesting.zcml
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/ftesting.zcml 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/ftesting.zcml 2007-12-29 17:06:16 UTC (rev 82553)
@@ -1,74 +1,166 @@
<configure
xmlns="http://namespaces.zope.org/zope"
+ xmlns:meta="http://namespaces.zope.org/meta"
xmlns:browser="http://namespaces.zope.org/browser"
- i18n_domain="demo">
+ xmlns:z3c="http://namespaces.zope.org/z3c"
+ i18n_domain="zope">
+ <!-- Turn on the devmode -->
+ <meta:provides feature="devmode" />
+
+ <!-- load meta configuration for exclude -->
+ <include package="zc.configuration" file="meta.zcml" />
+
+ <!-- exclude will prevent from include -->
+ <exclude package="zope.app.authentication" file="ftpplugins.zcml" />
+ <exclude package="zope.app.authentication" file="groupfolder.zcml" />
+ <exclude package="zope.app.authentication" file="principalfolder.zcml" />
+ <exclude package="zope.app.authentication.browser" />
+ <exclude package="zope.app.authentication.browser" file="configure.zcml" />
+ <exclude package="zope.app.authentication.browser" file="groupfolder.zcml" />
+ <exclude package="zope.app.authentication.browser" file="httpplugins.zcml" />
+ <exclude package="zope.app.authentication.browser" file="principalfolder.zcml" />
+ <exclude package="zope.app.authentication.browser" file="session.zcml" />
+ <exclude package="zope.app.broken" file="browser.zcml" />
+ <exclude package="zope.app.container.browser" />
+ <exclude package="zope.app.error.browser" />
+ <exclude package="zope.app.folder.browser" />
+ <exclude package="zope.app.i18n.browser" />
+ <exclude package="zope.app.securitypolicy.browser" />
+ <exclude package="zope.app.session" file="browser.zcml" />
+ <exclude package="zope.dublincore.browser" />
+
+ <!-- meta configure -->
<include package="zope.i18n" file="meta.zcml" />
<include package="zope.app.component" file="meta.zcml" />
<include package="zope.app.component.browser" file="meta.zcml" />
- <include package="zope.app.form.browser" file="meta.zcml" />
+ <include package="zope.app.container.browser" file="meta.zcml" />
<include package="zope.app.pagetemplate" file="meta.zcml" />
<include package="zope.app.publication" file="meta.zcml" />
<include package="zope.app.publisher" file="meta.zcml" />
<include package="zope.app.security" file="meta.zcml" />
- <include package="zope.app.securitypolicy" file="meta.zcml" />
+ <include package="zope.security" file="meta.zcml" />
+ <include package="zope.securitypolicy" file="meta.zcml" />
<include package="zope.viewlet" file="meta.zcml" />
+
+ <!-- load 3rd party meta configuration -->
+ <include package="z3c.form" file="meta.zcml" />
<include package="z3c.macro" file="meta.zcml" />
- <include package="z3c.macroviewlet" file="meta.zcml" />
<include package="z3c.pagelet" file="meta.zcml" />
<include package="z3c.template" file="meta.zcml" />
<include package="z3c.zrtresource" file="meta.zcml" />
- <!-- uhh, remove this later -->
- <browser:menu id="zmi_views" title="Views" />
- <browser:menu id="zmi_actions" title="Actions" />
+ <!-- vocabulary setup, that's bad and weird, because this is meta configuration -->
+ <include package="zope.app.schema" />
+
+ <!-- Database -->
+ <include package="zope.app.appsetup" />
+ <include package="zope.app.zopeappgenerations" />
+
+
+ <!-- zope packages -->
<include package="zope.annotation" />
- <include package="zope.app.appsetup" />
+ <include package="zope.component" />
+ <include package="zope.contentprovider" />
+ <include package="zope.dublincore" />
+ <include package="zope.location" />
+ <include package="zope.securitypolicy" />
+ <include package="zope.session" />
+ <include package="zope.traversing" />
+ <include package="zope.traversing.browser" />
+
+ <!-- Zope server -->
+ <include package="zope.app.server" />
+ <include package="zope.app.twisted" />
+ <include package="zope.app.wsgi" />
+
+ <!-- Broken-object support -->
+ <include package="zope.app.broken" />
+
+
+ <!-- Utilities -->
+ <include package="zope.app.principalannotation" />
+ <include package="zope.error" />
+
+
+ <!-- load zope package configuration -->
+ <include package="zope.app.authentication" />
<include package="zope.app.component" />
<include package="zope.app.container" />
- <include package="zope.app.error" />
+ <include package="zope.app.folder" />
+ <include package="zope.app.http" />
<include package="zope.app.i18n" />
<include package="zope.app.publication" />
+ <include package="zope.app.publisher" />
+ <include package="zope.app.publisher.browser" />
<include package="zope.app.security" />
<include package="zope.app.securitypolicy" />
- <include package="zope.app.session" />
- <include package="zope.app.twisted" />
- <include package="zope.app.wsgi" />
- <include package="zope.component" />
- <include package="zope.contentprovider" />
- <include package="zope.location" />
- <include package="zope.publisher" />
- <include package="zope.traversing" />
- <include package="zope.traversing.browser" />
- <include package="zope.viewlet" />
- <include package="z3c.layer.minimal" />
+
+ <!-- z3c component -->
+ <include package="z3c.form" />
+ <include package="z3c.formui" />
<include package="z3c.layer.pagelet" />
+ <include package="z3c.layer.ready2go" />
<include package="z3c.macro" />
- <include package="z3c.macroviewlet" />
<include package="z3c.pagelet" />
- <include package="z3c.skin.pagelet" />
<include package="z3c.skin.ready2go" />
- <!-- registered as demo skin -->
- <interface
- interface="z3c.skin.ready2go.IReady2GoBrowserSkin"
- type="zope.publisher.interfaces.browser.IBrowserSkinType"
- name="TestSkin"
- />
+ <browser:defaultSkin name="Ready2Go" />
+ <!-- default view points to TestPage -->
<browser:defaultView name="index.html" />
- <browser:defaultSkin name="TestSkin" />
+
+ <!-- test pages taken from z3c.layer.pagelet package -->
+ <configure package="z3c.layer.pagelet.tests">
+ <z3c:pagelet
+ for="*"
+ name="index.html"
+ permission="zope.ManageContent"
+ class=".TestPage"
+ layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ />
+
+ <z3c:template
+ for=".TestPage"
+ layer="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ template="page.pt"
+ />
+ </configure>
+
+ <!-- from zope.app.i18n move this to another package -->
+ <!-- Setup charset negotiation -->
+ <adapter
+ factory="zope.publisher.http.HTTPCharsets"
+ for="zope.publisher.interfaces.http.IHTTPRequest"
+ provides="zope.i18n.interfaces.IUserPreferredCharsets"
+ />
+
+ <!-- Setup charset negotiation --><!-- move this to another package -->
+ <adapter
+ factory="zope.app.publisher.browser.ModifiableBrowserLanguages"
+ for="zope.publisher.interfaces.http.IHTTPRequest"
+ provides="zope.i18n.interfaces.IModifiableUserPreferredLanguages"
+ />
+
+ <class class="zope.publisher.http.HTTPRequest">
+ <implements
+ interface="zope.annotation.interfaces.IAttributeAnnotatable"
+ />
+ </class>
+
+ <!-- security policy -->
<securityPolicy
- component="zope.app.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+ component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
/>
- <role id="zope.Manager" title="Manager" />
- <grantAll role="zope.Manager" />
- <grantAll role="zope.Anonymous" />
+ <role
+ id="zope.Manager"
+ title="Manager"
+ />
<principal
id="zope.manager"
@@ -82,4 +174,7 @@
principal="zope.manager"
/>
- </configure>
+ <grantAll role="zope.Manager" />
+ <grantAll role="zope.Anonymous" />
+
+</configure>
Added: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/skin.zcml
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/skin.zcml (rev 0)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/skin.zcml 2007-12-29 17:06:16 UTC (rev 82553)
@@ -0,0 +1,13 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ i18n_domain="z3c">
+
+ <!-- this own file allows you to exlude the Ready2Go skin in your buildout,
+ see zc.configuration for more info about the exclude directive. -->
+ <interface
+ interface="z3c.skin.ready2go.IReady2GoBrowserSkin"
+ type="zope.publisher.interfaces.browser.IBrowserSkinType"
+ name="Ready2Go"
+ />
+
+</configure>
Property changes on: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/skin.zcml
___________________________________________________________________
Name: svn:eol-style
+ native
Deleted: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/testing.py
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/testing.py 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/testing.py 2007-12-29 17:06:16 UTC (rev 82553)
@@ -1,25 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2007 Zope Foundation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-"""
-$Id: testing.py 77310 2007-07-02 18:14:46Z srichter $
-"""
-__docformat__ = "reStructuredText"
-
-import os
-from zope.app.testing.functional import ZCMLLayer
-
-
-TestLayer = ZCMLLayer(
- os.path.join(os.path.split(__file__)[0], 'ftesting.zcml'),
- __name__, 'TestLayer', allow_teardown=True)
Modified: z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/tests.py
===================================================================
--- z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/tests.py 2007-12-29 17:02:13 UTC (rev 82552)
+++ z3c.skin.ready2go/trunk/src/z3c/skin/ready2go/tests.py 2007-12-29 17:06:16 UTC (rev 82553)
@@ -17,25 +17,34 @@
"""
__docformat__ = "reStructuredText"
+import re
import unittest
-from zope.testing import doctest
-from zope.app.testing import placelesssetup
+from zope.testing import renormalizing
+from zope.app.testing import functional
-from z3c.skin.ready2go import testing
+import z3c.layer.ready2go
+layer = functional.defineLayer('TestLayer', 'ftesting.zcml')
+
+def getRootFolder():
+ return functional.FunctionalTestSetup().getRootFolder()
+
+
def test_suite():
- suites = []
- append = suites.append
- suite = unittest.TestSuite((
- doctest.DocFileSuite('README.txt',
- optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS,
- ),
- ))
- suite.layer = testing.TestLayer
- append(suite)
- return unittest.TestSuite(suites)
+ suite = unittest.TestSuite()
+ s = functional.FunctionalDocFileSuite(
+ 'README.txt',
+ globs={'getRootFolder': getRootFolder},
+ checker = renormalizing.RENormalizing([
+ (re.compile(r'httperror_seek_wrapper:', re.M), 'HTTPError:'),
+ ])
+ )
+ s.layer = TestLayer
+ suite.addTest(s)
+ return suite
+
if __name__ == '__main__':
unittest.main(defaultTest='test_suite')
More information about the Checkins
mailing list