def getImageScales(self, field=None, context=None): """Return the image sizes for the drawer""" if field is None: from Products.ATContentTypes.content.image import ATImage field = ATImage.schema['image'] # in Archetypes 1.5.x ImageField doesn't actually provide IImageField o.O if not isinstance(field, ImageField) and not implementedOrProvidedBy( IImageField, field): raise TypeError( "Can't retrieve image scale info for non-image field.") field_name = field.getName() sizes = field.getAvailableSizes(field) # Extract image dimensions from context. if context is not None: width, height = context.getField(field_name).getSize(context) else: width, height = 0, 0 scales = [{ 'value': '%s_%s' % (field_name, key), 'size': [value[0], value[1]], 'title': key.capitalize() } for key, value in sizes.items()] scales.sort(lambda x, y: cmp(x['size'][0], y['size'][0])) scales.insert(0, { 'value': '', 'title': 'Original', 'size': [width, height] }) return scales
def getImageScales(self, field=None, context=None): """Return the image sizes for the drawer""" if field is None: from Products.ATContentTypes.content.image import ATImage field = ATImage.schema['image'] # in Archetypes 1.5.x ImageField doesn't actually provide IImageField o.O if not isinstance(field, ImageField) and not implementedOrProvidedBy(IImageField, field): raise TypeError("Can't retrieve image scale info for non-image field.") field_name = field.getName() sizes = field.getAvailableSizes(field) # Extract image dimensions from context. if context is not None: width, height = context.getField(field_name).getSize(context) else: width, height = 0, 0 scales = [{'value': '@@images/%s/%s' % (field_name, key), 'size': [value[0], value[1]], 'title': key.capitalize()} for key, value in sizes.items()] scales.sort(key=lambda x: x['size'][0]) scales.insert(0, {'value': '', 'title': 'Original', 'size': [width, height]}) return scales
def test_implementedOrProvidedBy(self): myobj = TestObject() self.assertFalse(implementedOrProvidedBy(ITestIface, myobj)) zope.interface.directlyProvides(myobj, ITestIface) self.assertTrue(implementedOrProvidedBy(ITestIface, myobj))