[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