[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