[Checkins] SVN: grokui.base/trunk/src/grokui/base/ Now using a traverser that persist in the URL. Fixed the templates for that. Also fixed the mix between the skin and the layer. They are now properly declared.

Souheil CHELFOUH souheil at chelfouh.com
Fri Oct 9 08:02:25 EDT 2009


Log message for revision 104964:
  Now using a traverser that persist in the URL. Fixed the templates for that. Also fixed the mix between the skin and the layer. They are now properly declared.

Changed:
  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/templates/menuviewlet.pt
  U   grokui.base/trunk/src/grokui/base/viewlets.py

-=-
Modified: grokui.base/trunk/src/grokui/base/layout.py
===================================================================
--- grokui.base/trunk/src/grokui/base/layout.py	2009-10-09 12:00:41 UTC (rev 104963)
+++ grokui.base/trunk/src/grokui/base/layout.py	2009-10-09 12:02:25 UTC (rev 104964)
@@ -1,17 +1,22 @@
+# -*- coding: utf-8 -*-
+
 import grok
 import megrok.menu
 from megrok.layout import Layout, Page
+from grokui.base.namespace import GrokUILayer
+from grokui.base.interfaces import IAdminPanel
 from zope.app.folder.interfaces import IRootFolder
-from grokui.base.namespace import GrokUILayer
+from zope.traversing.browser.absoluteurl import absoluteURL
 
+
+grok.layer(GrokUILayer)
 grok.templatedir("templates")
-grok.layer(GrokUILayer)
 
+
 class AdminLayout(Layout):
     """The general layout for the administration
     """
     grok.context(IRootFolder)
-    template = grok.PageTemplateFile('templates/adminlayout.pt')
     title = u"Grok Administration Interface"
 
 
@@ -20,4 +25,6 @@
     """
     grok.baseclass()
     grok.context(IRootFolder)
+    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	2009-10-09 12:00:41 UTC (rev 104963)
+++ grokui.base/trunk/src/grokui/base/namespace.py	2009-10-09 12:02:25 UTC (rev 104964)
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 """Components to keep Grok UI releated stuff in a dedicated namespace.
 """
 import grok
@@ -3,14 +4,17 @@
 
 from zope.interface import Interface
+from zope.publisher.browser import applySkin
+from zope.publisher.interfaces import browser
+from zope.app.folder.interfaces import IRootFolder
 from zope.traversing.interfaces import ITraversable
-from zope.publisher.interfaces.browser import IBrowserRequest
-from zope.publisher.browser import applySkin
 
+
 class GrokUILayer(grok.IDefaultBrowserLayer):
     """A basic layer for all Grok UI components.
     """
     pass
 
-class GrokUISkin(grok.IDefaultBrowserLayer):
+
+class GrokUISkin(GrokUILayer, browser.IBrowserSkinType):
     """A skin for all Grok UI stuff.
     """
@@ -21,12 +25,14 @@
 class GrokUINamespace(grok.MultiAdapter):
     grok.name('grokui')
     grok.provides(ITraversable)
-    grok.adapts(Interface, IBrowserRequest)
+    grok.implements(browser.IBrowserSkinType)
+    grok.adapts(IRootFolder, browser.IBrowserRequest)
 
     def __init__(self, context, request):
         self.context = context
         self.request = request
-        applySkin(self.request, GrokUILayer)
+        applySkin(self.request, GrokUISkin)
+        self.request.shiftNameToApplication()
 
     def traverse(self, name, ignore):
         return self.context

Modified: grokui.base/trunk/src/grokui/base/templates/menuviewlet.pt
===================================================================
--- grokui.base/trunk/src/grokui/base/templates/menuviewlet.pt	2009-10-09 12:00:41 UTC (rev 104963)
+++ grokui.base/trunk/src/grokui/base/templates/menuviewlet.pt	2009-10-09 12:02:25 UTC (rev 104964)
@@ -1,7 +1,7 @@
 <ul id="grokui-menu-entries" tal:condition="viewlet/actions">
   <li tal:repeat="action viewlet/actions">
     <a href="" tal:content="action/title"
-       tal:attributes="href string:${viewlet/contexturl}/${action/action};
+       tal:attributes="href string:${viewlet/rooturl}/${action/action};
 		       title action/title;"
        />
   </li>

Modified: grokui.base/trunk/src/grokui/base/viewlets.py
===================================================================
--- grokui.base/trunk/src/grokui/base/viewlets.py	2009-10-09 12:00:41 UTC (rev 104963)
+++ grokui.base/trunk/src/grokui/base/viewlets.py	2009-10-09 12:02:25 UTC (rev 104964)
@@ -1,19 +1,19 @@
 # -*- coding: utf-8 -*-
 
 import grok
-
 from zope.component import getUtility
 from zope.app.folder.interfaces import IRootFolder
-from zope.traversing.browser.absoluteurl import absoluteURL
 from zope.app.publisher.interfaces.browser import IBrowserMenu
 from zope.app.security.interfaces import IUnauthenticatedPrincipal
-
 from z3c.flashmessage.interfaces import IMessageReceiver
+from grokui.base.interfaces import IAdminPanel
 from grokui.base.contentproviders import AdministrationHeader
 from grokui.base.contentproviders import AdministrationFooter
 
+grok.templatedir("templates")
+
+grok.view(IAdminPanel)
 grok.context(IRootFolder)
-grok.templatedir("templates")
 grok.viewletmanager(AdministrationHeader)
 
 
@@ -38,8 +38,8 @@
     grok.name("grokui.menu")
 
     def update(self):
-        self.contexturl = absoluteURL(self.context, self.request)
         menu = getUtility(IBrowserMenu, 'grokui_admin_menu')
+        self.rooturl = self.view.url(self.context)
         self.actions = menu.getMenuItems(self.context, self.request)
 
 



More information about the checkins mailing list