[Checkins] SVN: grokcore.layout/trunk/src/grokcore/layout/ Add an use new directive layout to select a different layout type on a page.
Sylvain Viollow
cvs-admin at zope.org
Mon Apr 30 08:55:56 UTC 2012
Log message for revision 125431:
Add an use new directive layout to select a different layout type on a page.
Changed:
U grokcore.layout/trunk/src/grokcore/layout/__init__.py
U grokcore.layout/trunk/src/grokcore/layout/components.py
U grokcore.layout/trunk/src/grokcore/layout/interfaces.py
-=-
Modified: grokcore.layout/trunk/src/grokcore/layout/__init__.py
===================================================================
--- grokcore.layout/trunk/src/grokcore/layout/__init__.py 2012-04-30 08:54:59 UTC (rev 125430)
+++ grokcore.layout/trunk/src/grokcore/layout/__init__.py 2012-04-30 08:55:52 UTC (rev 125431)
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from grokcore.layout.interfaces import ILayout, IPage
-from grokcore.layout.components import Layout, Page, FormPage
+from grokcore.layout.components import Layout, layout, Page, FormPage
from grokcore.layout.components import AddFormPage, EditFormPage, DisplayFormPage
from grokcore.layout.components import UnauthorizedPage, NotFoundPage
from grokcore.layout.components import ExceptionPage
Modified: grokcore.layout/trunk/src/grokcore/layout/components.py
===================================================================
--- grokcore.layout/trunk/src/grokcore/layout/components.py 2012-04-30 08:54:59 UTC (rev 125430)
+++ grokcore.layout/trunk/src/grokcore/layout/components.py 2012-04-30 08:55:52 UTC (rev 125431)
@@ -4,6 +4,7 @@
from zope.interface import Interface
from zope.publisher.publish import mapply
+import martian
import grokcore.component as grok
import grokcore.formlib
import grokcore.view
@@ -14,6 +15,12 @@
import zope.security.interfaces
+class layout(martian.Directive):
+ scope = martian.CLASS_OR_MODULE
+ store = martian.ONCE
+ default = ILayout
+
+
class Layout(grokcore.view.ViewSupport):
"""A layout object.
"""
@@ -71,8 +78,9 @@
layout = None
def __call__(self):
+ wanted = layout.bind().get(self)
self.layout = zope.component.getMultiAdapter(
- (self.request, self.context), ILayout)
+ (self.request, self.context), wanted)
mapply(self.update, (), self.request)
if self.request.response.getStatus() in (302, 303):
# A redirect was triggered somewhere in update(). Don't
Modified: grokcore.layout/trunk/src/grokcore/layout/interfaces.py
===================================================================
--- grokcore.layout/trunk/src/grokcore/layout/interfaces.py 2012-04-30 08:54:59 UTC (rev 125430)
+++ grokcore.layout/trunk/src/grokcore/layout/interfaces.py 2012-04-30 08:55:52 UTC (rev 125431)
@@ -42,3 +42,4 @@
class IGrokcoreLayoutAPI(IBaseClasses):
"""Grokcore layout API.
"""
+ layout = Attribute("Directive used to specify layout on a page.")
More information about the checkins
mailing list