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