[Plone-IT] ImageField con SchemaExtender

Fabrizio Rota fabrizio.rota a gmail.com
Mar 14 Giu 2011 19:31:23 UTC


Il prodotto collective leadimage può risparmiarti parecchia fatica: funziona
bene ed esiste per plone 2, 3, 4.
Mi senti di consigliartelo.

a presto

Il giorno 14 giugno 2011 16:51, Sandro Caneschi <caneschi a htt.it> ha
scritto:

> 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
>
>
> _______________________________________________
> Plone-IT mailing list
> Plone-IT a lists.plone.org
> https://lists.plone.org/mailman/listinfo/plone-plone-it
> http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
>



-- 
Fabrizio
--------------------
"Life is what happens to you while you're busy making other plans" - J.
Lennon

“If you think education is expensive, try ignorance” - D. Bok
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20110614/f3df7107/attachment.html>


Maggiori informazioni sulla lista Plone-IT