[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