On Thursday 06 September 2012, Roberto Rascioni wrote:
> Il 06/09/12 10:24, Riccardo Lemmi ha scritto:
> > On Thursday 06 September 2012, Roberto Rascioni wrote:
> >> Il 05/09/12 11:57, Riccardo Lemmi ha scritto:
> >>> On Wednesday 05 September 2012, Roberto Rascioni wrote:
> >>>> Salve a tutti,
> >>>> avrei la necessità di caricare n file in un singolo Archetype e
> >>>> di associare ad ognuno di essi un titolo.
> >>>> Vorrei evitare di far aggiungere all'utente n (oggetti) File
> >>>> all'interno di un AT folderish ma di far caricare i file
> >>>> direttamente attraverso l'interfaccia di editing dell'AT
> >>>>
> >>>> Cercando un po' la scelta è ricaduta su Products.DataGridField
> >>>> che non ha purtroppo il campo file disponibile! :(
> >>>>
> >>>> Sapreste suggerirmi un prodotto o un metodo attraverso il quale
> >>>> integrare Products.DataGridField con il campo file?
> >>>>
> >>>> Grazie anticipatamente
> >>>> Roberto
> >>>
> >>> Puoi partire da cotnent, field e widget di SimpleAttachment che
> >>> sono usati da RichDocument.
> >>
> >> Grazie mille! era proprio quello che stavo cercando!
> >>
> >> Ho iniziato a fare delle prove con SimpleAttachment ma purtroppo
> >> ho riscontrato delle problematiche che non riesco a risolvere...
> >> Quello che dovrei fare è estendere l'ATEvent e ho aggiunto così
> >> un campo booleano con il widget "AttachmentsManagerWidget" di
> >> SimpleAttachement (come in RichDocument)
> >>
> >> Il risultato è che il campo viene correttamente aggiunto
> >> all'interfaccia di editing dell'ATEvent ma l'upload dei file non
> >> va mai a buon fine nel senso che i file non vengono mai caricati
> >> nella piattaforma
> >>
> >> Ho pensato che forse il problema fosse dovuto dal fatto che
> >> ATEvent non è un oggetto folderish così ho provato a fare la
> >> stessa cosa con l'ATFolder, giusto per verificare, ma il problema
> >> non si risolve
> >>
> >> Ho provato a fare delle prove anche con un nuovo Archetype creato
> >> appositamente allo scopo ma lo stesso non sono riuscito a
> >> risolvere il problema
> >>
> >>
> >> Qualche suggerimento su cosa sto sbagliando o su cosa dovrei fare?
> >> ...
> >
> > - installa SimpleAttachment nel portale (il widget usa dei template
> > definiti in questo prodotto)
> > - controlla l'implementazione di processForm in RichDocument
>
> @Luca Fabbri: purtroppo l'output della shell non sembra restituire
> alcun errore..
>
> @Riccardo Lemmi:
> Si, avevo già installato SimpleAttachment e vedendo come fosse
> strutturato RichDocument ho cercato di fare una prova con un nuovo
> archetype includendo l'implementazione processForm ma senza
> successo...
>
> Di fatto non avevo provato ad includere la stessa implementazione
> nell'estensione dell'ATEvent ho provando proprio ora ma il problema
> purtroppo sembra non essere risolto
>
> Ora la configurazione che ho è questa
> Non so...forse sto facendo qualche stupido errore nella
> configurazione ma non riesco a capire dov'è l'errore
>
> from Products.Archetypes.public import BooleanField
> from Products.Archetypes import atapi
>
> from archetypes.schemaextender.field import ExtensionField
>
> from zope.component import adapts
> from zope.interface import implements
> from archetypes.schemaextender.interfaces import ISchemaExtender
> from Products.ATContentTypes.interface import IATEvent
>
> from Products.SimpleAttachment.widget import AttachmentsManagerWidget
>
> from Products.ATContentTypes.content.event import ATEvent
>
>
> class EventExtensionBlobField(ExtensionField, BooleanField):
> """ New Event field """
>
> class EventExtender(object):
> adapts(IATEvent)
> implements(ISchemaExtender)
>
> def __init__(self, context):
> self.context = context#
>
> def getFields(self):
> return self.fields
>
> fields = [
> EventExtensionBlobField('attachments',
> default=True,
> widget=AttachmentsManagerWidget(
> label=("Attachments"),
> description=(""),
> expanded=True,
> )),
> ]
>
> # enable FTP/WebDAV and friends
> PUT = ATEvent.PUT
>
> def processForm(self, data=1, metadata=0, REQUEST=None,
> values=None): ATEvent.processForm(self, data=data,
> metadata=metadata, REQUEST=REQUEST, values=values)
>
> request = REQUEST or self.REQUEST
> if values:
> form = values
> else:
> form = request.form
>
> if "attachmentFile" in form and form["attachmentFile"]:
> self.widget_attachmentsmanager_upload(state=None)
> if "imageFile" in form and form["imageFile"]:
> self.widget_imagesmanager_upload(state=None)
>
>
> Grazie ancora per la disponibilità e la pazienza ;)
> Un saluto
> Roberto
> ...processForm deve essere una patch ad ATEvent quindi oltre a schemaextender devi usare: http://pypi.python.org/pypi/collective.monkeypatcher (oppure fare la patch a mano). Io ti consiglio di creare un nuovo content type che sostituisca quello di default. -- Riccardo Lemmi Über Developer Reflab - helping humanitarian action through web innovation http://www.reflab.com
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Plone-IT mailing list [email protected] https://lists.plone.org/mailman/listinfo/plone-plone-it http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html
