[Checkins] SVN: grokui.base/branches/plugin-info/src/grokui/base/ Ready to use and to be tested :)
Souheil CHELFOUH
souheil at chelfouh.com
Fri Feb 26 09:25:20 EST 2010
Log message for revision 109468:
Ready to use and to be tested :)
Changed:
U grokui.base/branches/plugin-info/src/grokui/base/__init__.py
U grokui.base/branches/plugin-info/src/grokui/base/configure.zcml
U grokui.base/branches/plugin-info/src/grokui/base/contentproviders.py
U grokui.base/branches/plugin-info/src/grokui/base/info.py
U grokui.base/branches/plugin-info/src/grokui/base/layout.py
U grokui.base/branches/plugin-info/src/grokui/base/namespace.py
U grokui.base/branches/plugin-info/src/grokui/base/static/grok.css
A grokui.base/branches/plugin-info/src/grokui/base/templates/pluginpage.pt
U grokui.base/branches/plugin-info/src/grokui/base/viewlets.py
-=-
Modified: grokui.base/branches/plugin-info/src/grokui/base/__init__.py
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/__init__.py 2010-02-26 14:24:37 UTC (rev 109467)
+++ grokui.base/branches/plugin-info/src/grokui/base/__init__.py 2010-02-26 14:25:19 UTC (rev 109468)
@@ -1,6 +1,7 @@
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.namespace import GrokUILayer, GrokUISkin
+from grokui.base.namespace import GrokUINamespace, GrokUIPluginsInfo
from grokui.base.contentproviders import Header, Footer, MainMenu, Messages
from grokui.base.layout import GrokUIView
+from grokui.base.info import BasePluginInfo
Modified: grokui.base/branches/plugin-info/src/grokui/base/configure.zcml
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/configure.zcml 2010-02-26 14:24:37 UTC (rev 109467)
+++ grokui.base/branches/plugin-info/src/grokui/base/configure.zcml 2010-02-26 14:25:19 UTC (rev 109468)
@@ -1,5 +1,6 @@
<configure
xmlns:grok="http://namespaces.zope.org/grok"
+ xmlns:browser="http://namespaces.zope.org/browser"
xmlns="http://namespaces.zope.org/zope">
<include package="grok" />
@@ -8,4 +9,9 @@
<include package="megrok.layout" file="messages.zcml" />
<grok:grok package="." />
+ <browser:defaultView
+ for="grokui.base.interfaces.IGrokUIPluginInfo"
+ name="index"
+ />
+
</configure>
Modified: grokui.base/branches/plugin-info/src/grokui/base/contentproviders.py
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/contentproviders.py 2010-02-26 14:24:37 UTC (rev 109467)
+++ grokui.base/branches/plugin-info/src/grokui/base/contentproviders.py 2010-02-26 14:25:19 UTC (rev 109468)
@@ -2,13 +2,14 @@
import grok
from megrok.menu import Menu
+from zope.interface import Interface
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)
-grok.context(IGrokUIRealm)
+grok.context(Interface)
class Header(grok.ViewletManager):
Modified: grokui.base/branches/plugin-info/src/grokui/base/info.py
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/info.py 2010-02-26 14:24:37 UTC (rev 109467)
+++ grokui.base/branches/plugin-info/src/grokui/base/info.py 2010-02-26 14:25:19 UTC (rev 109468)
@@ -1,14 +1,44 @@
# -*- coding: utf-8 -*-
-import grokcore.component as grok
+import grokcore.viewlet as grok
+from megrok.layout import Page
+from zope.component import getUtilitiesFor
+from zope.location import LocationProxy
from zope.schema.fieldproperty import FieldProperty
-from grokui.base.interfaces import IGrokUIPluginInfo
+from zope.traversing.browser.absoluteurl import absoluteURL
+from grokui.base import interfaces
+from grokui.base import GrokUIPluginsInfo, GrokUIView, GrokUILayer
+grok.templatedir('templates')
+
+
class BasePluginInfo(grok.GlobalUtility):
grok.baseclass()
- grok.implements(IGrokUIPluginInfo)
+ grok.implements(interfaces.IGrokUIPluginInfo)
- title = FieldProperty(IGrokUIPluginInfo['title'])
- description = FieldProperty(IGrokUIPluginInfo['description'])
- version = FieldProperty(IGrokUIPluginInfo['version'])
+ title = FieldProperty(interfaces.IGrokUIPluginInfo['title'])
+ description = FieldProperty(interfaces.IGrokUIPluginInfo['description'])
+ version = FieldProperty(interfaces.IGrokUIPluginInfo['version'])
+
+
+class Plugins(GrokUIView):
+ grok.order(50)
+ grok.title(u'Information panels')
+
+ def plugins(self):
+ plugins = getUtilitiesFor(interfaces.IGrokUIPluginInfo)
+ for name, plugin in plugins:
+ located = LocationProxy(plugin, self.context, '++info++%s' % name)
+ yield dict(
+ url=absoluteURL(located, self.request),
+ version=located.version,
+ title=located.title,
+ description=located.description)
+
+
+class PluginPage(Page):
+ grok.name('index')
+ grok.layer(GrokUILayer)
+ grok.implements(interfaces.IUIPanel)
+ grok.context(interfaces.IGrokUIPluginInfo)
Modified: grokui.base/branches/plugin-info/src/grokui/base/layout.py
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/layout.py 2010-02-26 14:24:37 UTC (rev 109467)
+++ grokui.base/branches/plugin-info/src/grokui/base/layout.py 2010-02-26 14:25:19 UTC (rev 109468)
@@ -6,6 +6,7 @@
from grok import util
from grokui.base import IGrokUIRealm, GrokUILayer, IUIPanel, MainMenu
from megrok.layout import Layout, Page
+from zope.interface import Interface
from zope.traversing.browser.absoluteurl import absoluteURL
grok.layer(GrokUILayer)
@@ -15,7 +16,7 @@
class GrokUILayout(Layout):
"""The general layout for the administration
"""
- grok.context(IGrokUIRealm)
+ grok.context(Interface)
title = u"Grok User Interface"
def update(self):
Modified: grokui.base/branches/plugin-info/src/grokui/base/namespace.py
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/namespace.py 2010-02-26 14:24:37 UTC (rev 109467)
+++ grokui.base/branches/plugin-info/src/grokui/base/namespace.py 2010-02-26 14:25:19 UTC (rev 109468)
@@ -39,17 +39,17 @@
return LocationProxy(self, self.root, "++grokui++")
-class GrokUIPluginInfo(grok.MultiAdapter):
+class GrokUIPluginsInfo(grok.MultiAdapter):
grok.name('info')
grok.provides(ITraversable)
grok.adapts(IGrokUIRealm, browser.IBrowserRequest)
def __init__(self, context, request):
- self.root = context
+ self.context = 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)
+ return LocationProxy(info, self.context, '++info++%s' % name)
Modified: grokui.base/branches/plugin-info/src/grokui/base/static/grok.css
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/static/grok.css 2010-02-26 14:24:37 UTC (rev 109467)
+++ grokui.base/branches/plugin-info/src/grokui/base/static/grok.css 2010-02-26 14:25:19 UTC (rev 109468)
@@ -231,3 +231,6 @@
font-weight: bold !important;
}
+#plugins {
+ padding: 0.4em 3em;
+}
Added: grokui.base/branches/plugin-info/src/grokui/base/templates/pluginpage.pt
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/templates/pluginpage.pt (rev 0)
+++ grokui.base/branches/plugin-info/src/grokui/base/templates/pluginpage.pt 2010-02-26 14:25:19 UTC (rev 109468)
@@ -0,0 +1,5 @@
+<div class="plugin-page">
+ <h1 tal:content="context/title" />
+ <h2 tal:content="context/version" />
+ <p tal:content="context/description" />
+</div>
Modified: grokui.base/branches/plugin-info/src/grokui/base/viewlets.py
===================================================================
--- grokui.base/branches/plugin-info/src/grokui/base/viewlets.py 2010-02-26 14:24:37 UTC (rev 109467)
+++ grokui.base/branches/plugin-info/src/grokui/base/viewlets.py 2010-02-26 14:25:19 UTC (rev 109468)
@@ -5,10 +5,11 @@
from z3c.flashmessage.interfaces import IMessageReceiver
from zope.browsermenu.interfaces import IBrowserMenu
from zope.authentication.interfaces import IUnauthenticatedPrincipal
+from zope.interface import Interface
from zope.component import getUtility
grok.view(IUIPanel)
-grok.context(IGrokUIRealm)
+grok.context(Interface)
grok.templatedir("templates")
More information about the checkins
mailing list