[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