[Checkins] SVN: grokui.base/trunk/src/grokui/base/contentproviders.py Move the addfolder Index view from grokui.admin to grokui.base, as it
Uli Fouquet
uli at gnufix.de
Mon Feb 22 12:30:54 EST 2010
Log message for revision 109299:
Move the addfolder Index view from grokui.admin to grokui.base, as it
is something that should be available for all grokui components not
only grokui.admin.
Changed:
U grokui.base/trunk/src/grokui/base/contentproviders.py
-=-
Modified: grokui.base/trunk/src/grokui/base/contentproviders.py
===================================================================
--- grokui.base/trunk/src/grokui/base/contentproviders.py 2010-02-22 17:30:41 UTC (rev 109298)
+++ grokui.base/trunk/src/grokui/base/contentproviders.py 2010-02-22 17:30:54 UTC (rev 109299)
@@ -2,6 +2,9 @@
import grok
from megrok.menu import Menu
+from zope.site.interfaces import IRootFolder
+from zope.component import getUtility, getMultiAdapter
+from zope.browsermenu.interfaces import IBrowserMenu
from grokui.base import IGrokUIRealm, GrokUILayer
grok.layer(GrokUILayer)
@@ -23,3 +26,27 @@
class MainMenu(Menu):
grok.name('grokui_mainmenu')
grok.title('Grok user interface panels')
+
+
+class Index(grok.View):
+ """Redirect to the grokui namespace.
+
+ Redirect to the first item displayed in grokui-namespaced main
+ menu.
+ """
+ grok.name('index.html') # The root folder is not a grok.Model
+ grok.context(IRootFolder)
+ grok.layer(grok.IDefaultBrowserLayer)
+
+ def render(self):
+ menu = getUtility(IBrowserMenu, 'grokui_mainmenu')
+ realm = getMultiAdapter((self.context, self.request),
+ name='grokui')
+ items = menu.getMenuItems(realm, self.request)
+ if len(items) == 0:
+ # No grokui panel installed.
+ return u'No further grokui components are installed.'
+ first_name = items[0]['action']
+ grokui_url = self.url(self.context, '/++grokui++/%s' % first_name)
+ self.redirect(grokui_url)
+ return
More information about the checkins
mailing list