[Checkins] SVN: grokui.introspector/trunk/src/grokui/introspector/
Create general introspection view which shows all the IInfo
views for
Martijn Faassen
faassen at infrae.com
Tue Jul 22 13:01:35 EDT 2008
Log message for revision 88716:
Create general introspection view which shows all the IInfo views for
arbitrary objects.
Changed:
U grokui.introspector/trunk/src/grokui/introspector/code.py
U grokui.introspector/trunk/src/grokui/introspector/views.py
-=-
Modified: grokui.introspector/trunk/src/grokui/introspector/code.py
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/code.py 2008-07-22 16:58:07 UTC (rev 88715)
+++ grokui.introspector/trunk/src/grokui/introspector/code.py 2008-07-22 17:01:35 UTC (rev 88716)
@@ -16,11 +16,6 @@
import grok
from zope.introspector.code import Code, PackageOrModule
-class Index(grok.View):
- grok.context(Code)
- def render(self):
- return "This is code"
-
class CodeTraverser(grok.Traverser):
grok.context(PackageOrModule)
Modified: grokui.introspector/trunk/src/grokui/introspector/views.py
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/views.py 2008-07-22 16:58:07 UTC (rev 88715)
+++ grokui.introspector/trunk/src/grokui/introspector/views.py 2008-07-22 17:01:35 UTC (rev 88716)
@@ -16,8 +16,10 @@
"""
import grok
+from zope import component
from zope.interface import Interface
from zope.app.folder.interfaces import IRootFolder
+from zope.introspector.interfaces import IInfos
from grokui.introspector.interfaces import (IGrokRegistryIntrospector,
IGrokCodeIntrospector)
@@ -41,3 +43,20 @@
class Code(grok.View):
grok.name('index')
grok.context(IGrokCodeIntrospector)
+
+class Introspect(grok.View):
+ grok.context(Interface)
+ grok.name('index')
+
+ def infoViews(self):
+ for name, info in IInfos(self.context).infos():
+ view = component.getMultiAdapter((info, self.request),
+ name='index')
+ # the introspect view is found for everything, and therefore
+ # also for the IInfo adapter. This is not what we want, just
+ # skip displaying a view for the IInfo if there's no more specific
+ # view to be found
+ if isinstance(view, Introspect):
+ continue
+ yield view
+
More information about the Checkins
mailing list