[Checkins] SVN: grokui.base/branches/plugin-info/ Added plugin info traverser and base utility class
Souheil CHELFOUH
souheil at chelfouh.com
Fri Feb 26 06:22:30 EST 2010
Log message for revision 109454:
Added plugin info traverser and base utility class
Changed:
A grokui.base/branches/plugin-info/
U grokui.base/branches/plugin-info/src/grokui/base/__init__.py
U grokui.base/branches/plugin-info/src/grokui/base/interfaces.py
U grokui.base/branches/plugin-info/src/grokui/base/namespace.py
-=-
Modified: grokui.base/branches/plugin-info/src/grokui/base/__init__.py
===================================================================
--- grokui.base/trunk/src/grokui/base/__init__.py 2010-02-26 10:55:58 UTC (rev 109452)
+++ grokui.base/branches/plugin-info/src/grokui/base/__init__.py 2010-02-26 11:22:29 UTC (rev 109454)
@@ -1,4 +1,6 @@
-from grokui.base.interfaces import IGrokUIRealm, IUIPanel, IMainMenu
+from grokui.base.interfaces import IGrokUIRealm, IGrokUIPluginInfo
+from grokui.base.interfaces import IUIPanel, IMainMenu
+from grokui.base.info import BasePluginInfo
from grokui.base.namespace import GrokUILayer, GrokUISkin, GrokUINamespace
from grokui.base.contentproviders import Header, Footer, MainMenu, Messages
from grokui.base.layout import GrokUIView
Modified: grokui.base/branches/plugin-info/src/grokui/base/interfaces.py
===================================================================
--- grokui.base/trunk/src/grokui/base/interfaces.py 2010-02-26 10:55:58 UTC (rev 109452)
+++ grokui.base/branches/plugin-info/src/grokui/base/interfaces.py 2010-02-26 11:22:29 UTC (rev 109454)
@@ -1,6 +1,8 @@
# -*- coding: utf-8 -*-
+from zope.dublincore.interfaces import IDCDescriptiveProperties
from zope.interface import Interface, Attribute
+from zope.schema import TextLine
class IMainMenu(Interface):
@@ -19,3 +21,10 @@
"""
root = Attribute("The root folder object.")
request = Attribute("The HTTP request object.")
+
+
+class IGrokUIPluginInfo(IDCDescriptiveProperties):
+ """Represents a component dedicated to give specific info
+ about a grokui extension package.
+ """
+ version = TextLine(title="Version of the package")
Modified: grokui.base/branches/plugin-info/src/grokui/base/namespace.py
===================================================================
--- grokui.base/trunk/src/grokui/base/namespace.py 2010-02-26 10:55:58 UTC (rev 109452)
+++ grokui.base/branches/plugin-info/src/grokui/base/namespace.py 2010-02-26 11:22:29 UTC (rev 109454)
@@ -4,10 +4,12 @@
import grok
from zope.site.interfaces import IRootFolder
from zope.location import LocationProxy
+from zope.component import queryUtility
from zope.publisher.browser import applySkin
from zope.publisher.interfaces import browser
+from zope.publisher.interfaces import NotFound
from zope.traversing.interfaces import ITraversable
-from grokui.base.interfaces import IGrokUIRealm
+from grokui.base.interfaces import IGrokUIRealm, IGrokUIPluginInfo
class GrokUILayer(grok.IDefaultBrowserLayer):
@@ -35,3 +37,19 @@
def traverse(self, name, ignore):
return LocationProxy(self, self.root, "++grokui++")
+
+
+class GrokUIPluginInfo(grok.MultiAdapter):
+ grok.name('info')
+ grok.provides(ITraversable)
+ grok.adapts(IGrokUIRealm, browser.IBrowserRequest)
+
+ def __init__(self, context, request):
+ self.root = context
+ self.request = request
+
+ def traverse(self, name, ignore):
+ info = queryUtility(IGrokUIPluginInfo, name=name)
+ if info is None:
+ raise NotFound(self.context, name, self.request)
+ return LocationProxy(info, self.context, "++info++%s" % name)
More information about the checkins
mailing list