All pastes #1755764 Raw Edit

clueless

public text v1 · immutable
#1755764 ·published 2010-01-18 08:33 UTC
rendered paste body
Index: Products/Archetypes/ArchetypeTool.py===================================================================--- Products/Archetypes/ArchetypeTool.py	(révision 12078)+++ Products/Archetypes/ArchetypeTool.py	(copie de travail)@@ -49,6 +49,13 @@ from ZODB.POSException import ConflictError import transaction ++def interface_implementedby(iface, obj):+    try:+        return iface.isImplementedByInstancesOf(obj)+    except:+        return iface.implementedBy(obj)+ class BoundPageTemplateFile(PageTemplateFile):      def __init__(self, *args, **kw):@@ -233,16 +240,16 @@     if hasattr(klass, 'immediate_view'):         fti[0]['immediate_view'] = klass.immediate_view -    if not IReferenceable.isImplementedByInstancesOf(klass):+    if not interface_implementedby(IReferenceable, klass):         refs = findDict(fti[0]['actions'], 'id', 'references')         refs['visible'] = False -    if not IExtensibleMetadata.isImplementedByInstancesOf(klass):+    if not interface_implementedby(IExtensibleMetadata, klass):         refs = findDict(fti[0]['actions'], 'id', 'metadata')         refs['visible'] = False      # Set folder_listing to 'view' if the class implements ITemplateMixin-    if not ITemplateMixin.isImplementedByInstancesOf(klass):+    if not interface_implementedby(ITemplateMixin, klass):         actions = []         for action in fti[0]['actions']:             if action['id'] != 'folderlisting':@@ -664,7 +671,7 @@         if isinstance(type, dict) and type.has_key('klass'):             type = type['klass']         for iface in interfaces:-            res = iface.isImplementedByInstancesOf(type)+            res = interface_implementedby(iface, type)             if res:                 return True         return False@@ -702,7 +709,7 @@         for data in listTypes():             klass = data['klass']             for iface in ifaces:-                if iface.isImplementedByInstancesOf(klass):+                if interface_implementedby(iface, klass):                     ti = pt.getTypeInfo(data['portal_type'])                     if ti is not None:                         value.append(ti)