Il 06/09/2012 13:51, Roberto Rascioni ha scritto:
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)



Io lo uso come è usato in richdocument, con il boolean field. Per il resto, le macro fanno tutto da sole e non c'è bisogno di toccare processForm.

        BooleanField('displayAttachments',
            default=True,
            languageIndependent=0,
            widget=AttachmentsManagerWidget(
                i18n_domain='plone',
                label="""Display attachments download box""",
                label_msgid='EEPArticleNG_label_displayAttachments',
description="If selected, a list of uploaded attachments will be presented at the bottom of the document to allow them to be easily downloaded",
                description_msgid='EEPArticleNG_help_displayAttachments',
            ),
        ),

    ),)

e funziona.
_______________________________________________
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

Rispondere a