[Checkins] SVN: Sandbox/nadako/zope. Move browser:defaultView and browser:defaultSkin directives from zope.app.publisher to zope.publisher.
Dan Korostelev
nadako at gmail.com
Tue Aug 25 09:12:10 EDT 2009
Log message for revision 103204:
Move browser:defaultView and browser:defaultSkin directives from zope.app.publisher to zope.publisher.
Changed:
U Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/meta.zcml
U Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/metaconfigure.py
U Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/metadirectives.py
D Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/tests.py
U Sandbox/nadako/zope.publisher/src/zope/publisher/defaultview.py
A Sandbox/nadako/zope.publisher/src/zope/publisher/meta.zcml
A Sandbox/nadako/zope.publisher/src/zope/publisher/tests/test_zcml.py
A Sandbox/nadako/zope.publisher/src/zope/publisher/zcml.py
-=-
Modified: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/meta.zcml
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/meta.zcml 2009-08-25 12:29:59 UTC (rev 103203)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/meta.zcml 2009-08-25 13:12:10 UTC (rev 103204)
@@ -1,26 +1,8 @@
-<configure
- xmlns="http://namespaces.zope.org/zope"
- xmlns:meta="http://namespaces.zope.org/meta"
- xmlns:zcml="http://namespaces.zope.org/zcml">
+<configure xmlns="http://namespaces.zope.org/zope">
+ <include package="zope.publisher" file="meta.zcml" />
<include package="zope.browserresource" file="meta.zcml" />
<include package="zope.browsermenu" file="meta.zcml" />
<include package="zope.browserpage" file="meta.zcml" />
- <meta:directives namespace="http://namespaces.zope.org/browser">
-
- <meta:directive
- name="defaultView"
- schema=".metadirectives.IDefaultViewDirective"
- handler=".metaconfigure.defaultView"
- />
-
- <meta:directive
- name="defaultSkin"
- schema=".metadirectives.IDefaultSkinDirective"
- handler=".metaconfigure.defaultSkin"
- />
-
- </meta:directives>
-
</configure>
Modified: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/metaconfigure.py
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/metaconfigure.py 2009-08-25 12:29:59 UTC (rev 103203)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/metaconfigure.py 2009-08-25 13:12:10 UTC (rev 103204)
@@ -15,66 +15,9 @@
$Id$
"""
-__docformat__ = 'restructuredtext'
-
-import warnings
-from zope import component
-from zope.component.interface import provideInterface
-from zope.component.zcml import handler
-from zope.publisher.interfaces import IDefaultViewName
-from zope.publisher.interfaces.browser import IBrowserRequest
-from zope.publisher.interfaces.browser import IBrowserSkinType
-from zope.publisher.interfaces.browser import IDefaultSkin
-
-# referred to through ZCML
-from zope.app.publisher.browser.resourcemeta import resource
-from zope.app.publisher.browser.resourcemeta import resourceDirectory
-from zope.app.publisher.browser.i18nresourcemeta import I18nResource
+# BBB imports
+from zope.browserresource.metaconfigure import resource
+from zope.browserresource.metaconfigure import resourceDirectory
+from zope.browserresource.metaconfigure import I18nResource
from zope.browserpage.metaconfigure import view
-
-
-def setDefaultSkin(name, info=''):
- """Set the default skin.
-
- >>> from zope.interface import directlyProvides
- >>> from zope.app.testing import ztapi
-
- >>> class Skin1: pass
- >>> directlyProvides(Skin1, IBrowserSkinType)
-
- >>> ztapi.provideUtility(IBrowserSkinType, Skin1, 'Skin1')
- >>> setDefaultSkin('Skin1')
- >>> adapters = component.getSiteManager().adapters
-
- Lookup the default skin for a request that has the
-
- >>> adapters.lookup((IBrowserRequest,), IDefaultSkin, '') is Skin1
- True
- """
- skin = component.getUtility(IBrowserSkinType, name)
- handler('registerAdapter',
- skin, (IBrowserRequest,), IDefaultSkin, '', info),
-
-def defaultSkin(_context, name):
-
- _context.action(
- discriminator = 'defaultSkin',
- callable = setDefaultSkin,
- args = (name, _context.info)
- )
-
-def defaultView(_context, name, for_=None, layer=IBrowserRequest):
-
- _context.action(
- discriminator = ('defaultViewName', for_, layer, name),
- callable = handler,
- args = ('registerAdapter',
- name, (for_, layer), IDefaultViewName, '', _context.info)
- )
-
- if for_ is not None:
- _context.action(
- discriminator = None,
- callable = provideInterface,
- args = ('', for_)
- )
+from zope.publisher.zcml import setDefaultSkin, defaultSkin, defaultView
Modified: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/metadirectives.py
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/metadirectives.py 2009-08-25 12:29:59 UTC (rev 103203)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/metadirectives.py 2009-08-25 13:12:10 UTC (rev 103204)
@@ -17,10 +17,6 @@
$Id$
"""
-from zope.configuration.fields import GlobalObject, GlobalInterface
-from zope.interface import Interface
-from zope.schema import TextLine
-
# BBB imports
from zope.browserresource.metadirectives import (
IBasicResourceInformation,
@@ -48,47 +44,4 @@
IPagesPageSubdirective,
IPageDirective,
)
-
-
-class IDefaultSkinDirective(Interface):
- """Sets the default browser skin
- """
-
- name = TextLine(
- title=u"Default skin name",
- description=u"Default skin name",
- required=True
- )
-
-class IDefaultViewDirective(Interface):
- """
- The name of the view that should be the default.
-
- This name refers to view that should be the
- view used by default (if no view name is supplied
- explicitly).
- """
-
- name = TextLine(
- title=u"The name of the view that should be the default.",
- description=u"""
- This name refers to view that should be the view used by
- default (if no view name is supplied explicitly).""",
- required=True
- )
-
- for_ = GlobalObject(
- title=u"The interface this view is the default for.",
- description=u"""Specifies the interface for which the view is
- registered. All objects implementing this interface can make use of
- this view. If this attribute is not specified, the view is available
- for all objects.""",
- required=False
- )
-
- layer = GlobalInterface(
- title=u"The layer the default view is declared for",
- description=u"The default layer for which the default view is "
- u"applicable. By default it is applied to all layers.",
- required=False
- )
+from zope.publisher.zcml import IDefaultSkinDirective, IDefaultViewDirective
Deleted: Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/tests.py
===================================================================
--- Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/tests.py 2009-08-25 12:29:59 UTC (rev 103203)
+++ Sandbox/nadako/zope.app.publisher/src/zope/app/publisher/browser/tests.py 2009-08-25 13:12:10 UTC (rev 103204)
@@ -1,238 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Corporation 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.
-#
-##############################################################################
-"""'browser' namespace directive tests
-
-$Id$
-"""
-
-import sys
-import os
-import unittest
-from cStringIO import StringIO
-
-from zope import component
-from zope.interface import Interface, implements, directlyProvides, providedBy
-
-import zope.security.management
-from zope.configuration.xmlconfig import xmlconfig, XMLConfig
-from zope.configuration.exceptions import ConfigurationError
-from zope.publisher.browser import TestRequest
-from zope.publisher.interfaces import IDefaultViewName
-from zope.publisher.interfaces.browser import IBrowserPublisher
-from zope.publisher.interfaces.browser import IBrowserRequest
-from zope.publisher.interfaces.browser import IBrowserSkinType, IDefaultSkin
-from zope.security.proxy import removeSecurityProxy, ProxyFactory
-from zope.security.permission import Permission
-from zope.security.interfaces import IPermission
-from zope.testing.doctestunit import DocTestSuite
-from zope.traversing.adapters import DefaultTraversable
-from zope.traversing.interfaces import ITraversable
-
-import zope.publisher.defaultview
-import zope.app.publisher.browser
-from zope.component.testfiles.views import IC, V1, VZMI, R1, IV
-from zope.app.publisher.browser.fileresource import FileResource
-from zope.app.publisher.browser.i18nfileresource import I18nFileResource
-from zope.browsermenu.menu import getFirstMenuItem
-from zope.browsermenu.interfaces import IMenuItemType, IBrowserMenu
-from zope.app.testing import placelesssetup, ztapi
-
-tests_path = os.path.join(
- os.path.dirname(zope.app.publisher.browser.__file__),
- 'tests')
-
-template = """<configure
- xmlns='http://namespaces.zope.org/zope'
- xmlns:browser='http://namespaces.zope.org/browser'
- i18n_domain='zope'>
- %s
- </configure>"""
-
-
-request = TestRequest()
-
-class V2(V1, object):
-
- def action(self):
- return self.action2()
-
- def action2(self):
- return "done"
-
-class VT(V1, object):
- def publishTraverse(self, request, name):
- try:
- return int(name)
- except:
- return super(VT, self).publishTraverse(request, name)
-
-class Ob(object):
- implements(IC)
-
-ob = Ob()
-
-class NCV(object):
- "non callable view"
-
- def __init__(self, context, request):
- pass
-
-class CV(NCV):
- "callable view"
- def __call__(self):
- pass
-
-
-class C_w_implements(NCV):
- implements(Interface)
-
- def index(self):
- return self
-
-class ITestMenu(Interface):
- """Test menu."""
-
-directlyProvides(ITestMenu, IMenuItemType)
-
-
-class ITestLayer(IBrowserRequest):
- """Test Layer."""
-
-class ITestSkin(ITestLayer):
- """Test Skin."""
-
-
-class MyResource(object):
-
- def __init__(self, request):
- self.request = request
-
-
-class Test(placelesssetup.PlacelessSetup, unittest.TestCase):
-
- def setUp(self):
- super(Test, self).setUp()
- XMLConfig('meta.zcml', zope.app.publisher.browser)()
- ztapi.provideAdapter(None, ITraversable, DefaultTraversable)
-
- def testDefaultView(self):
- self.assertEqual(
- component.queryMultiAdapter((ob, request), IDefaultViewName),
- None)
-
- xmlconfig(StringIO(template % (
- '''
- <browser:defaultView
- name="test"
- for="zope.component.testfiles.views.IC" />
- '''
- )))
-
- self.assertEqual(
- zope.publisher.defaultview.getDefaultViewName(ob, request),
- 'test')
-
- def testDefaultViewWithLayer(self):
- class FakeRequest(TestRequest):
- implements(ITestLayer)
- request2 = FakeRequest()
-
- self.assertEqual(
- component.queryMultiAdapter((ob, request2), IDefaultViewName),
- None)
-
- xmlconfig(StringIO(template % (
- '''
- <browser:defaultView
- name="test"
- for="zope.component.testfiles.views.IC" />
-
- <browser:defaultView
- name="test2"
- for="zope.component.testfiles.views.IC"
- layer="
- zope.app.publisher.browser.tests.ITestLayer"
- />
- '''
- )))
-
- self.assertEqual(
- zope.publisher.defaultview.getDefaultViewName(ob, request2),
- 'test2')
- self.assertEqual(
- zope.publisher.defaultview.getDefaultViewName(ob, request),
- 'test')
-
- def testDefaultViewForClass(self):
- self.assertEqual(
- component.queryMultiAdapter((ob, request), IDefaultViewName),
- None)
-
- xmlconfig(StringIO(template % (
- '''
- <browser:defaultView
- for="zope.app.publisher.browser.tests.Ob"
- name="test"
- />
- '''
- )))
-
- self.assertEqual(
- zope.publisher.defaultview.getDefaultViewName(ob, request),
- 'test')
-
- def testDefaultSkin(self):
- request = TestRequest()
- self.assertEqual(
- component.queryMultiAdapter((ob, request), name='test'),
- None)
-
- XMLConfig('meta.zcml', zope.component)()
- xmlconfig(StringIO(template % (
- '''
- <interface
- interface="
- zope.app.publisher.browser.tests.ITestSkin"
- type="zope.publisher.interfaces.browser.IBrowserSkinType"
- name="Test Skin"
- />
- <browser:defaultSkin name="Test Skin" />
- <browser:page
- name="test"
- class="zope.component.testfiles.views.VZMI"
- layer="
- zope.app.publisher.browser.tests.ITestLayer"
- for="zope.component.testfiles.views.IC"
- permission="zope.Public"
- attribute="index"
- />
- <browser:page name="test"
- class="zope.component.testfiles.views.V1"
- for="zope.component.testfiles.views.IC"
- permission="zope.Public"
- attribute="index"
- />
- '''
- )))
-
- # Simulate Zope Publication behavior in beforeTraversal()
- adapters = component.getSiteManager().adapters
- skin = adapters.lookup((providedBy(request),), IDefaultSkin, '')
- directlyProvides(request, skin)
-
- v = component.queryMultiAdapter((ob, request), name='test')
- self.assert_(issubclass(v.__class__, VZMI))
-
-def test_suite():
- return unittest.makeSuite(Test)
Modified: Sandbox/nadako/zope.publisher/src/zope/publisher/defaultview.py
===================================================================
--- Sandbox/nadako/zope.publisher/src/zope/publisher/defaultview.py 2009-08-25 12:29:59 UTC (rev 103203)
+++ Sandbox/nadako/zope.publisher/src/zope/publisher/defaultview.py 2009-08-25 13:12:10 UTC (rev 103204)
@@ -43,7 +43,6 @@
a context.
"""
-# TODO: needs tests
def getDefaultViewName(object, request, context=None):
name = queryDefaultViewName(object, request, context=context)
if name is not None:
Added: Sandbox/nadako/zope.publisher/src/zope/publisher/meta.zcml
===================================================================
--- Sandbox/nadako/zope.publisher/src/zope/publisher/meta.zcml (rev 0)
+++ Sandbox/nadako/zope.publisher/src/zope/publisher/meta.zcml 2009-08-25 13:12:10 UTC (rev 103204)
@@ -0,0 +1,19 @@
+<configure xmlns:meta="http://namespaces.zope.org/meta">
+
+ <meta:directives namespace="http://namespaces.zope.org/browser">
+
+ <meta:directive
+ name="defaultView"
+ schema=".zcml.IDefaultViewDirective"
+ handler=".zcml.defaultView"
+ />
+
+ <meta:directive
+ name="defaultSkin"
+ schema=".zcml.IDefaultSkinDirective"
+ handler=".zcml.defaultSkin"
+ />
+
+ </meta:directives>
+
+</configure>
Property changes on: Sandbox/nadako/zope.publisher/src/zope/publisher/meta.zcml
___________________________________________________________________
Added: svn:eol-style
+ native
Added: Sandbox/nadako/zope.publisher/src/zope/publisher/tests/test_zcml.py
===================================================================
--- Sandbox/nadako/zope.publisher/src/zope/publisher/tests/test_zcml.py (rev 0)
+++ Sandbox/nadako/zope.publisher/src/zope/publisher/tests/test_zcml.py 2009-08-25 13:12:10 UTC (rev 103204)
@@ -0,0 +1,169 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation 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.
+#
+##############################################################################
+"""Tests for browser:defaultSkin and browser:defaultView directives
+
+$Id: tests.py 103163 2009-08-24 16:22:07Z nadako $
+"""
+from cStringIO import StringIO
+import unittest
+
+from zope.testing import cleanup
+from zope import component
+
+from zope.configuration.xmlconfig import XMLConfig, xmlconfig
+from zope.publisher.browser import TestRequest, BrowserView
+from zope.publisher.defaultview import getDefaultViewName
+from zope.publisher.interfaces import IDefaultViewName, IDefaultSkin
+from zope.publisher.interfaces.browser import IBrowserRequest
+from zope.interface import Interface, implements, providedBy, directlyProvides
+
+import zope.publisher
+
+class IOb(Interface):
+ pass
+
+class Ob(object):
+ implements(IOb)
+
+class ITestLayer(IBrowserRequest):
+ """Test Layer."""
+
+class ITestSkin(ITestLayer):
+ """Test Skin."""
+
+class V1(BrowserView):
+ pass
+
+class V2(BrowserView):
+ pass
+
+
+request = TestRequest()
+ob = Ob()
+
+template = """<configure
+ xmlns='http://namespaces.zope.org/zope'
+ xmlns:browser='http://namespaces.zope.org/browser'
+ i18n_domain='zope'>
+ %s
+ </configure>"""
+
+class Test(cleanup.CleanUp, unittest.TestCase):
+
+ def setUp(self):
+ super(Test, self).setUp()
+ XMLConfig('meta.zcml', zope.publisher)()
+
+ def testDefaultView(self):
+ self.assertTrue(
+ component.queryMultiAdapter((ob, request), IDefaultViewName) is None)
+ xmlconfig(StringIO(template % (
+ '''
+ <browser:defaultView
+ name="test"
+ for="zope.publisher.tests.test_zcml.IOb" />
+ '''
+ )))
+
+ self.assertEqual(getDefaultViewName(ob, request), 'test')
+
+ def testDefaultViewWithLayer(self):
+ class FakeRequest(TestRequest):
+ implements(ITestLayer)
+ request2 = FakeRequest()
+
+ self.assertEqual(
+ component.queryMultiAdapter((ob, request2), IDefaultViewName),
+ None)
+
+ xmlconfig(StringIO(template % (
+ '''
+ <browser:defaultView
+ for="zope.publisher.tests.test_zcml.IOb"
+ name="test"
+ />
+ <browser:defaultView
+ for="zope.publisher.tests.test_zcml.IOb"
+ layer="zope.publisher.tests.test_zcml.ITestLayer"
+ name="test2"
+ />
+ '''
+ )))
+
+ self.assertEqual(
+ zope.publisher.defaultview.getDefaultViewName(ob, request2),
+ 'test2')
+ self.assertEqual(
+ zope.publisher.defaultview.getDefaultViewName(ob, request),
+ 'test')
+
+ def testDefaultViewForClass(self):
+ self.assertEqual(
+ component.queryMultiAdapter((ob, request), IDefaultViewName),
+ None)
+
+ xmlconfig(StringIO(template % (
+ '''
+ <browser:defaultView
+ for="zope.publisher.tests.test_zcml.Ob"
+ name="test"
+ />
+ '''
+ )))
+
+ self.assertEqual(
+ zope.publisher.defaultview.getDefaultViewName(ob, request),
+ 'test')
+
+ def testDefaultSkin(self):
+ request = TestRequest()
+ self.assertEqual(
+ component.queryMultiAdapter((ob, request), name='test'),
+ None)
+
+ XMLConfig('meta.zcml', component)()
+ xmlconfig(StringIO(template % (
+ '''
+ <interface
+ interface="
+ zope.publisher.tests.test_zcml.ITestSkin"
+ type="zope.publisher.interfaces.browser.IBrowserSkinType"
+ name="Test Skin"
+ />
+ <browser:defaultSkin name="Test Skin" />
+ <view
+ for="zope.publisher.tests.test_zcml.IOb"
+ type="zope.publisher.interfaces.browser.IDefaultBrowserLayer"
+ name="test"
+ factory="zope.publisher.tests.test_zcml.V1"
+ />
+ <view
+ for="zope.publisher.tests.test_zcml.IOb"
+ type="zope.publisher.tests.test_zcml.ITestLayer"
+ name="test"
+ factory="zope.publisher.tests.test_zcml.V2"
+ />
+ '''
+ )))
+
+ # Simulate Zope Publication behavior in beforeTraversal()
+ adapters = component.getSiteManager().adapters
+ skin = adapters.lookup((providedBy(request),), IDefaultSkin, '')
+ directlyProvides(request, skin)
+
+ v = component.queryMultiAdapter((ob, request), name='test')
+ self.assertTrue(isinstance(v, V2))
+
+def test_suite():
+ return unittest.makeSuite(Test)
Property changes on: Sandbox/nadako/zope.publisher/src/zope/publisher/tests/test_zcml.py
___________________________________________________________________
Added: svn:keywords
+ Id,svn:eol-style=native
Added: Sandbox/nadako/zope.publisher/src/zope/publisher/zcml.py
===================================================================
--- Sandbox/nadako/zope.publisher/src/zope/publisher/zcml.py (rev 0)
+++ Sandbox/nadako/zope.publisher/src/zope/publisher/zcml.py 2009-08-25 13:12:10 UTC (rev 103204)
@@ -0,0 +1,120 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation 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.
+#
+##############################################################################
+"""Default view and default skin ZCML configuration feature.
+
+$Id: metaconfigure.py 103163 2009-08-24 16:22:07Z nadako $
+"""
+from zope import component
+from zope.component.interface import provideInterface
+from zope.component.zcml import handler
+from zope.configuration.fields import GlobalObject, GlobalInterface
+from zope.interface import Interface
+from zope.publisher.interfaces import IDefaultViewName
+from zope.publisher.interfaces.browser import IBrowserRequest
+from zope.publisher.interfaces.browser import IBrowserSkinType
+from zope.publisher.interfaces.browser import IDefaultSkin
+from zope.schema import TextLine
+
+
+class IDefaultSkinDirective(Interface):
+ """Sets the default browser skin"""
+
+ name = TextLine(
+ title=u"Default skin name",
+ description=u"Default skin name",
+ required=True
+ )
+
+
+class IDefaultViewDirective(Interface):
+ """
+ The name of the view that should be the default.
+
+ This name refers to view that should be the
+ view used by default (if no view name is supplied
+ explicitly).
+ """
+
+ name = TextLine(
+ title=u"The name of the view that should be the default.",
+ description=u"""
+ This name refers to view that should be the view used by
+ default (if no view name is supplied explicitly).""",
+ required=True
+ )
+
+ for_ = GlobalObject(
+ title=u"The interface this view is the default for.",
+ description=u"""Specifies the interface for which the view is
+ registered. All objects implementing this interface can make use of
+ this view. If this attribute is not specified, the view is available
+ for all objects.""",
+ required=False
+ )
+
+ layer = GlobalInterface(
+ title=u"The layer the default view is declared for",
+ description=u"The default layer for which the default view is "
+ u"applicable. By default it is applied to all layers.",
+ required=False
+ )
+
+
+def setDefaultSkin(name, info=''):
+ """Set the default skin.
+
+ >>> from zope.interface import directlyProvides
+ >>> from zope.app.testing import ztapi
+
+ >>> class Skin1: pass
+ >>> directlyProvides(Skin1, IBrowserSkinType)
+
+ >>> ztapi.provideUtility(IBrowserSkinType, Skin1, 'Skin1')
+ >>> setDefaultSkin('Skin1')
+ >>> adapters = component.getSiteManager().adapters
+
+ Lookup the default skin for a request that has the
+
+ >>> adapters.lookup((IBrowserRequest,), IDefaultSkin, '') is Skin1
+ True
+ """
+ skin = component.getUtility(IBrowserSkinType, name)
+ handler('registerAdapter',
+ skin, (IBrowserRequest,), IDefaultSkin, '', info),
+
+
+def defaultSkin(_context, name):
+
+ _context.action(
+ discriminator = 'defaultSkin',
+ callable = setDefaultSkin,
+ args = (name, _context.info)
+ )
+
+
+def defaultView(_context, name, for_=None, layer=IBrowserRequest):
+
+ _context.action(
+ discriminator = ('defaultViewName', for_, layer, name),
+ callable = handler,
+ args = ('registerAdapter',
+ name, (for_, layer), IDefaultViewName, '', _context.info)
+ )
+
+ if for_ is not None:
+ _context.action(
+ discriminator = None,
+ callable = provideInterface,
+ args = ('', for_)
+ )
Property changes on: Sandbox/nadako/zope.publisher/src/zope/publisher/zcml.py
___________________________________________________________________
Added: svn:keywords
+ Id,svn:eol-style=native
More information about the Checkins
mailing list