[Checkins] SVN: grokui.base/trunk/src/grokui/base/ Made the namespace traverser locatable to act like a parent of the UI.
Souheil CHELFOUH
souheil at chelfouh.com
Sat Jan 9 20:15:15 EST 2010
Log message for revision 107965:
Made the namespace traverser locatable to act like a parent of the UI.
Created an interface to represent it : IGrokuiRealm. This name will probably change.
We need now to decide how the login and redirection will work, since the URL now needs to contain ++grokui++
Changed:
U grokui.base/trunk/src/grokui/base/__init__.py
U grokui.base/trunk/src/grokui/base/contentproviders.py
U grokui.base/trunk/src/grokui/base/layout.py
U grokui.base/trunk/src/grokui/base/namespace.py
U grokui.base/trunk/src/grokui/base/viewlets.py
-=-
Modified: grokui.base/trunk/src/grokui/base/__init__.py
===================================================================
--- grokui.base/trunk/src/grokui/base/__init__.py 2010-01-10 01:10:26 UTC (rev 107964)
+++ grokui.base/trunk/src/grokui/base/__init__.py 2010-01-10 01:15:15 UTC (rev 107965)
@@ -1,2 +1,2 @@
-from grokui.base.namespace import GrokUILayer, GrokUISkin
+from grokui.base.namespace import GrokUILayer, GrokUISkin, IGrokuiRealm
from grokui.base.layout import AdminView
Modified: grokui.base/trunk/src/grokui/base/contentproviders.py
===================================================================
--- grokui.base/trunk/src/grokui/base/contentproviders.py 2010-01-10 01:10:26 UTC (rev 107964)
+++ grokui.base/trunk/src/grokui/base/contentproviders.py 2010-01-10 01:15:15 UTC (rev 107965)
@@ -2,19 +2,19 @@
import grok
from megrok.menu import Menu
-from zope.app.folder.interfaces import IRootFolder
+from grokui.base import IGrokuiRealm
from grokui.base.interfaces import IApplicationRepresentation
from grokui.base.interfaces import IApplicationInformation
class AdministrationHeader(grok.ViewletManager):
grok.name('grokui_admin_header')
- grok.context(IRootFolder)
+ grok.context(IGrokuiRealm)
class AdministrationFooter(grok.ViewletManager):
grok.name('grokui_admin_footer')
- grok.context(IRootFolder)
+ grok.context(IGrokuiRealm)
class ApplicationInformation(grok.ViewletManager):
@@ -23,6 +23,6 @@
class AdministrationMenu(Menu):
- grok.context(IRootFolder)
+ grok.context(IGrokuiRealm)
grok.name('grokui_admin_menu')
grok.title('Administration panels')
Modified: grokui.base/trunk/src/grokui/base/layout.py
===================================================================
--- grokui.base/trunk/src/grokui/base/layout.py 2010-01-10 01:10:26 UTC (rev 107964)
+++ grokui.base/trunk/src/grokui/base/layout.py 2010-01-10 01:15:15 UTC (rev 107965)
@@ -3,6 +3,7 @@
import grok
import megrok.menu
from megrok.layout import Layout, Page
+from grokui.base import IGrokuiRealm
from grokui.base.namespace import GrokUILayer
from grokui.base.interfaces import IAdminPanel
from zope.app.folder.interfaces import IRootFolder
@@ -16,7 +17,7 @@
class AdminLayout(Layout):
"""The general layout for the administration
"""
- grok.context(IRootFolder)
+ grok.context(IGrokuiRealm)
title = u"Grok Administration Interface"
@@ -24,7 +25,7 @@
"""An admin view.
"""
grok.baseclass()
- grok.context(IRootFolder)
+ grok.context(IGrokuiRealm)
grok.implements(IAdminPanel)
megrok.menu.menuitem('grokui_admin_menu')
Modified: grokui.base/trunk/src/grokui/base/namespace.py
===================================================================
--- grokui.base/trunk/src/grokui/base/namespace.py 2010-01-10 01:10:26 UTC (rev 107964)
+++ grokui.base/trunk/src/grokui/base/namespace.py 2010-01-10 01:15:15 UTC (rev 107965)
@@ -8,8 +8,8 @@
from zope.publisher.interfaces import browser
from zope.app.folder.interfaces import IRootFolder
from zope.traversing.interfaces import ITraversable
+from zope.location import LocationProxy
-
class GrokUILayer(grok.IDefaultBrowserLayer):
"""A basic layer for all Grok UI components.
"""
@@ -22,17 +22,21 @@
grok.skin('GrokUISkin')
+class IGrokuiRealm(Interface):
+ def getRoot(self):
+ """returns the root folder"""
+
+
class GrokUINamespace(grok.MultiAdapter):
grok.name('grokui')
grok.provides(ITraversable)
- grok.implements(browser.IBrowserSkinType)
+ grok.implements(IGrokuiRealm)
grok.adapts(IRootFolder, browser.IBrowserRequest)
def __init__(self, context, request):
- self.context = context
+ self.root = context
self.request = request
applySkin(self.request, GrokUISkin)
- self.request.shiftNameToApplication()
def traverse(self, name, ignore):
- return self.context
+ return LocationProxy(self, self.root, "++grokui++")
Modified: grokui.base/trunk/src/grokui/base/viewlets.py
===================================================================
--- grokui.base/trunk/src/grokui/base/viewlets.py 2010-01-10 01:10:26 UTC (rev 107964)
+++ grokui.base/trunk/src/grokui/base/viewlets.py 2010-01-10 01:15:15 UTC (rev 107965)
@@ -6,6 +6,7 @@
from zope.app.publisher.interfaces.browser import IBrowserMenu
from zope.app.security.interfaces import IUnauthenticatedPrincipal
from z3c.flashmessage.interfaces import IMessageReceiver
+from grokui.base import IGrokuiRealm
from grokui.base.interfaces import IAdminPanel
from grokui.base.contentproviders import AdministrationHeader
from grokui.base.contentproviders import AdministrationFooter
@@ -13,7 +14,7 @@
grok.templatedir("templates")
grok.view(IAdminPanel)
-grok.context(IRootFolder)
+grok.context(IGrokuiRealm)
grok.viewletmanager(AdministrationHeader)
More information about the checkins
mailing list