[z3-checkins] r5764 - in z3/Flon/trunk: . interfaces skins/flon
tests tools
dreamcatcher at codespeak.net
dreamcatcher at codespeak.net
Wed Jul 28 22:34:16 MEST 2004
Author: dreamcatcher
Date: Wed Jul 28 22:34:16 2004
New Revision: 5764
Modified:
z3/Flon/trunk/configure.zcml
z3/Flon/trunk/interfaces/__init__.py
z3/Flon/trunk/skins/flon/edit_marker_form.cpt
z3/Flon/trunk/tests/test_tool.py
z3/Flon/trunk/tests/test_views.py
z3/Flon/trunk/tools/interface.py
Log:
Add provided interfaces to marker form
Modified: z3/Flon/trunk/configure.zcml
==============================================================================
--- z3/Flon/trunk/configure.zcml (original)
+++ z3/Flon/trunk/configure.zcml Wed Jul 28 22:34:16 2004
@@ -27,17 +27,24 @@
<browser:page
for=".interfaces.IInterfaceTool"
- permission="zope2.View"
+ permission="cmf.ManagePortal"
class=".browser.SkinLayer"
name="skin_layer"
/>
<browser:page
for=".interfaces.IInterfaceTool"
- permission="zope2.View"
+ permission="cmf.ManagePortal"
class=".browser.ViewsDetails"
name="view_details"
allowed_attributes="aq_parent getViewsByLayers"
/>
+ <content class=".tools.interface.InterfaceTool">
+ <require permission="cmf.ManagePortal"
+ interface=".interfaces.IInterfaceTool"
+ />
+ </content>
+
+
</configure>
Modified: z3/Flon/trunk/interfaces/__init__.py
==============================================================================
--- z3/Flon/trunk/interfaces/__init__.py (original)
+++ z3/Flon/trunk/interfaces/__init__.py Wed Jul 28 22:34:16 2004
@@ -30,5 +30,14 @@
def getMarkerInterfaceNames(context):
"""See IIntrospector"""
+ def getProvided(context):
+ """Interfaces provided by context"""
+
+ def getDirectlyProvidedNames(context):
+ """Names of interfaces provided by context"""
+
def update(context, add=None, remove=None):
"""Update directly provided interfaces for an instance."""
+
+ def getSkins():
+ """Registered skins"""
Modified: z3/Flon/trunk/skins/flon/edit_marker_form.cpt
==============================================================================
--- z3/Flon/trunk/skins/flon/edit_marker_form.cpt (original)
+++ z3/Flon/trunk/skins/flon/edit_marker_form.cpt Wed Jul 28 22:34:16 2004
@@ -23,11 +23,13 @@
method="post"
enctype="multipart/form-data"
tal:attributes="action string:${context/getId}/${template/getId}"
- tal:define="iface_tool iface_tool|portal/portal_interface|nothing"
+ tal:define="iface_tool iface_tool|portal/portal_interface|nothing;
+provided python:iface_tool.getDirectlyProvidedNames(context);
+ available python:iface_tool.getMarkerInterfaceNames(context);
+ impl python:iface_tool.getProvidedNames(context)"
tal:condition="iface_tool">
- <fieldset tal:define="provided python:iface_tool.getDirectlyProvidedNames(context);
- available python:iface_tool.getMarkerInterfaceNames(context)">
+ <fieldset>
<legend i18n:translate="legend_edit_marker">Marker Interfaces</legend>
@@ -141,6 +143,36 @@
<input type="hidden" name="form.submitted" value="1" />
</fieldset>
+<fieldset>
+ <legend i18n:translate="legend_marker_additional">Additional Info</legend>
+ <div class="field"
+ tal:condition="impl">
+
+ <label for="id" i18n:translate="label_marker_implemented">Implemented Interfaces</label>
+
+ <div class="formHelp" i18n:translate="help_marker_implemented">
+ Those are the interfaces this object provides, either
+ directly or through its base classes.
+ </div>
+
+ <tal:block tal:repeat="iface impl">
+
+ <label for=""
+ i18n:translate=""
+ tal:attributes="for iface"
+ tal:content="iface" />
+
+ [<a href=""
+ tal:attributes="href string:${context/absolute_url}/view_details?iface=${iface}&type=zope.publisher.interfaces.browser.IBrowserRequest">
+ Views
+ </a>]
+
+ <br />
+
+ </tal:block>
+ </div>
+
+</fieldset>
</form>
</div>
</body>
Modified: z3/Flon/trunk/tests/test_tool.py
==============================================================================
--- z3/Flon/trunk/tests/test_tool.py (original)
+++ z3/Flon/trunk/tests/test_tool.py Wed Jul 28 22:34:16 2004
@@ -106,6 +106,14 @@
self.failUnless('test_tool.IAdvancedDummy' in provided)
self.failUnless('test_tool.ISpecialDummy' in provided)
+ provided = self.it.getProvidedNames(foo)
+ self.failUnless('test_tool.IAdvancedDummy' in provided)
+ self.failUnless('test_tool.ISpecialDummy' in provided)
+
+ provided = self.it.getProvided(foo)
+ self.failUnless(IAdvancedDummy in provided)
+ self.failUnless(ISpecialDummy in provided)
+
def test_remove_markers(self):
foo = Dummy()
iface_names = self.it.getMarkerInterfaceNames(foo)
@@ -122,6 +130,11 @@
provided = self.it.getDirectlyProvidedNames(foo)
self.failIf('test_tool.IAdvancedDummy' in provided)
+ provided = self.it.getProvidedNames(foo)
+ self.failIf('test_tool.IAdvancedDummy' in provided)
+
+ provided = self.it.getProvided(foo)
+ self.failIf(IAdvancedDummy in provided)
def test_suite():
import unittest
Modified: z3/Flon/trunk/tests/test_views.py
==============================================================================
--- z3/Flon/trunk/tests/test_views.py (original)
+++ z3/Flon/trunk/tests/test_views.py Wed Jul 28 22:34:16 2004
@@ -76,7 +76,7 @@
ztapi.browserView(IFoo, 'index.html', FooView, layer='default')
def test_views(self):
- view = self.it.restrictedTraverse('@@skin_layer')
+ view = self.it.unrestrictedTraverse('@@skin_layer')
skins = dict([(s.name, s.layers) for s in view.getSkins(False)])
self.failUnless('skinA' in skins, skins)
self.failUnless('skinB' in skins, skins)
@@ -92,7 +92,7 @@
request = self.it.REQUEST
request['iface'] = 'IFoo'
request['type'] = 'IBrowserRequest'
- view = self.it.restrictedTraverse('@@view_details')
+ view = self.it.unrestrictedTraverse('@@view_details')
layer = view.getViewsByLayers()[0]
self.assertEquals(layer['name'], 'default')
view = layer['views'][0]
Modified: z3/Flon/trunk/tools/interface.py
==============================================================================
--- z3/Flon/trunk/tools/interface.py (original)
+++ z3/Flon/trunk/tools/interface.py Wed Jul 28 22:34:16 2004
@@ -22,6 +22,7 @@
from Products.CMFPlone.InterfaceTool import InterfaceTool as BaseTool
from Products.Flon.interfaces import IInterfaceTool
from zope.interface import directlyProvides, directlyProvidedBy, implements
+from zope.interface import providedBy
from zope.app.introspector.interfaces import IIntrospector
from zope.app.component.interface import getInterface
from zope.app.apidoc.viewmodule import ViewModule
@@ -52,6 +53,15 @@
"""See IIntrospector"""
return IIntrospector(context).getMarkerInterfaceNames()
+ def getProvided(self, context):
+ """See IIntrospector"""
+ return providedBy(context)
+
+ def getProvidedNames(self, context):
+ """See IIntrospector"""
+ provided = providedBy(context)
+ return IIntrospector(context).getInterfaceNames(interfaces=provided)
+
def update(self, context, add=None, remove=None):
ob = context
More information about the z3-checkins
mailing list