On 03/15/2012 02:35 PM, ciccio2000 wrote:
* giovedì 15 marzo 2012, alle 13:07, Simone Orsi scrive:
Ciao,
[...]
come restituisci il contenuto del file? Quel "return iterator" dove sta?

Se restituisci il contenuto del file nel __call__ della view ti deve
per forza mostrare il contenuto del file.

Tipo:

def __call__(self):
     return self.get_file_content()

E' in un metodo della view:

class View(grok.View):
     grok.context(IMapViewer)
     grok.require('zope2.View')

...

     def downloadData(self):
         ...
         zfname = "/tmp/%s-%s-%s.zip" % (st, et, model)
         ...
         iterator = filestream_iterator(zfname, 'rb')
         RESPONSE.setHeader...
         return iterator


come ho detto il file non e' un oggetto plone,
ma viene generato su file system dinamicamente
a seconda di come viene riempito un form
(che si trova nella view).

ciao e grazie.
non importa da dove arriva il contenuto, importa come lo restituisci ;)

Non so come vuoi che funzioni il tutto ma una possibile soluzione e' quella che ti ho detto prima, farlo ritornare al __call__.

Magari puoi mettere un pulsante di submit per il download che richiami la stessa vista e nel __call__ fai qualcosa del genere:

def __call__(self):
    if self.request.get('download'):
        return self.downloadData()
    return super(self.__class__,self).__call__()
_______________________________________________
Plone-IT mailing list
plone...@lists.plone.org
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

Rispondere a