Example #1
0
    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
Example #3
0
 def test_implementedOrProvidedBy(self):
     myobj = TestObject()
     self.assertFalse(implementedOrProvidedBy(ITestIface, myobj))
     zope.interface.directlyProvides(myobj, ITestIface)
     self.assertTrue(implementedOrProvidedBy(ITestIface, myobj))
Example #4
0
 def test_implementedOrProvidedBy(self):
     myobj = TestObject()
     self.assertFalse(implementedOrProvidedBy(ITestIface, myobj))
     zope.interface.directlyProvides(myobj, ITestIface)
     self.assertTrue(implementedOrProvidedBy(ITestIface, myobj))