[Plone-IT] ImageField con SchemaExtender

Sandro Caneschi caneschi a htt.it
Mar 14 Giu 2011 14:51:36 UTC


Vorrei utilizzare SchemaExtender per aggiungere un'immagine con relativa
didascalia all'oggetto Event.

L'aggiunta dei campi va a buon fine, ma ho dei problemi nella
visualizzazione dell'immagine.

In pratica riesco ad inserire l'immagine, ma se torno in edit l'immagine non
viene visualizzata, al suo posto c' un riquadro delle stesse proporzioni
dell'immagine inserita ma non  possibile visualizzarla.
Ho provato anche all'indirizzo /image e /image_thumb ma niente.

Ho pensato che la classe necessitasse di un traverse ma non ha funzionato...
sembra che la ignori.

Potete aiutarmi?


Metto qui sotto un po' di codice relativo al campo Image che ho messo in
extender.py:





class ExtensionImageField(ExtensionField, ImageField): pass

image = ExtensionImageField(
'image',
 required = False,
storage=AnnotationStorage(),
widget=ImageWidget(
 label="Immagine",
description="Inserisci un'immagine relativa all'evento",
 ),
validators=('isNonEmptyFile'),
languageIndependent = True,
 sizes= {'large'   : (768, 768),
'preview' : (400, 400),
 'mini'    : (200, 200),
'thumb'   : (128, 128),
 'tile'    :  (64, 64),
'icon'    :  (32, 32),
 'listing' :  (16, 16),
   },
)

class ATEventExtender(ContentExtender):
    adapts(IATEvent)
    fields = ContentExtender.fields + [image]

    def __bobo_traverse__(self, REQUEST, name):
        """Transparent access to image scales
        """
        if name.startswith('image'):
            field = self.getField('image')
            image = None
            if name == 'image':
                image = field.getScale(self)
            else:
                scalename = name[len('image_'):]
                if scalename in field.getAvailableSizes(self):
                    image = field.getScale(self, scale=scalename)
            if image is not None and not isinstance(image, basestring):
                # image might be None or '' for empty images
                return image

        return base.ATCTContent.__bobo_traverse__(self, REQUEST, name)





Grazie

Sandro
-------------- parte successiva --------------
Un allegato HTML  stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20110614/7b300775/attachment.html>


Maggiori informazioni sulla lista Plone-IT