[Plone-IT] Products.DataGridField & FileColumn

Roberto Rascioni r.rascioni a unimc.it
Gio 6 Set 2012 11:51:13 UTC


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
>
>
> _______________________________________________
> 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



-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20120906/e3e34919/attachment-0001.html>


Maggiori informazioni sulla lista Plone-IT