class MyViewB(Page): grok.context(Interface) grok.name('myview') grok.layer(IAnotherLayer) def render(self): return "MYVIEW"
class MyViewA(Page): grok.context(Interface) grok.name('myview') grok.layer(IDefaultLayer) def render(self): return "MYVIEW"
class SecurityRest(rest.REST): grok.context(MyContent) view.layer(LayerSecurity) @security.require(security.Public) def GET(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "GET3" @security.require('zope.ManageContent') def POST(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "POST3" @security.require('zope.ManageContent') def PUT(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "PUT3" @security.require('zope.ManageContent') def DELETE(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "DELETE3"
class LayeredPot(grok.ContentProvider): grok.name('pot') grok.context(Interface) grok.layer(IBoneLayer) def render(self): return u"Layered pot"
class MammothRest(rest.REST): view.layer(MammothRestLayer) @security.require(TouchMammoth) def GET(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return self.context.name
class BRest(rest.REST): view.layer(LayerB) grok.context(MyApp) def GET(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "GET" def PUT(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "PUT"
class NoInterfaceRest(rest.REST): grok.context(MyNoInterfaceContent) view.layer(LayerInterface) def GET(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "GET directly registered" def PUT(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "PUT directly registered"
class BodyTest(rest.REST): grok.context(MyContent) view.layer(LayerContent) def POST(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return self.body.decode() def PUT(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return self.body.decode()
class InterfaceRest(rest.REST): grok.context(IFoo) view.layer(LayerInterface) def GET(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "GET interface registered" def POST(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "POST interface registered" def PUT(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "PUT interface registered" def DELETE(self): self.request.response.setHeader('Content-Type', 'text/plain;charset=utf-8') return "DELETE interface registered"
pass class PartySkin(PartyLayer): grok.skin("party") class CasualSkin(CasualLayer): grok.skin("casual") class RainySkin(RainyLayer): grok.skin("rainy") grok.layer(CasualLayer) class Mammoth(grok.Context): pass class Hello(grok.View): pass hello = grok.PageTemplate( """\ <html> <body> <h1>Hi sir !</h1>
class URLTestingViewOnASkin(grok.View): grok.layer(URLTestingSkin) grok.name('test') def render(self): return u"I'm on a url testing skin: {0}".format(self.url())
# -*- coding: utf-8 -*- import megrok.menu import grokcore.view as grok from grokui.base import IGrokUIRealm, GrokUILayer, IUIPanel, MainMenu from megrok.layout import Layout, Page from zope.traversing.browser.absoluteurl import absoluteURL grok.layer(GrokUILayer) class GrokUILayout(Layout): """The general layout for the administration """ grok.context(IGrokUIRealm) title = u"Grok User Interface" def update(self): self.baseurl = absoluteURL(self.context, self.request) + '/' class GrokUIView(Page): """A grok ui view. """ grok.baseclass() grok.context(IGrokUIRealm) grok.implements(IUIPanel) megrok.menu.menuitem(MainMenu)
class ElephantTraverser(grokcore.traverser.Traverser): grok.context(Herd) view.layer(ElephantLayer) def traverse(self, name): return Mammoth(name + ' Elephant')
class ATwoLayout(Layout): grok.context(Two) grok.layer(IALayer) def render(self): return "Layout A for context Two"
class BOneLayout(Layout): grok.context(One) grok.layer(IBLayer) def render(self): return "Layout B for context One"
</html> >>> browser.open("http://localhost/++skin++Rotterdam/manfred/@@moredrawings") >>> print browser.contents Pretty >>> browser.open("http://localhost/++skin++myskin/manfred/@@evenmoredrawings") >>> print browser.contents Awesome """ import grokcore.view as grok from zope.app.basicskin import IBasicSkin from zope.app.rotterdam import rotterdam grok.layer(IBasicSkin) class MySkinLayer(grok.IBrowserRequest): pass class MySkin(MySkinLayer): grok.skin('myskin') class Mammoth(grok.Context): pass class CaveDrawings(grok.View): pass cavedrawings = grok.PageTemplate("""\ <html>
class Happy(grok.View): grok.layer(PartyLayer) def render(self): return u"Hee yay !"
class BTwoLayout(Layout): grok.context(Two) grok.layer(IBLayer) def render(self): return "Layout B for context Two"
class MyView(Page): grok.context(Interface) grok.layer(IALayer) def render(self): return "MyView on IALayouer"
class ALayout(Layout): grok.context(A) grok.layer(IDefaultLayer) def render(self): return "A Layout"
class BLayout(Layout): grok.context(B) grok.layer(IAnotherLayer) def render(self): return "B Layout"
class A2Layout(Layout): grok.context(A) grok.layer(IAnotherLayer) def render(self): return "A2 Layout"
pass class PartySkin(PartyLayer): grok.skin('party') class CasualSkin(CasualLayer): grok.skin('casual') class RainySkin(RainyLayer): grok.skin('rainy') grok.layer(CasualLayer) class Mammoth(grok.Context): pass class Hello(grok.View): pass hello = grok.PageTemplate("""\ <html> <body> <h1>Hi sir !</h1> </body>
class CRest(rest.REST): view.layer(LayerC) grok.context(MyApp) def some_method_thats_not_in_HTTP(self): pass
class Sad(grok.View): grok.layer(RainyLayer) def render(self): return u"Aw... It rains."
class AOneLayout(Layout): grok.context(One) grok.layer(IALayer) def render(self): return "Layout A for context One"