[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