[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