From: <mme...@us...> - 2010-01-16 21:01:00
|
Revision: 2039 http://bika.svn.sourceforge.net/bika/?rev=2039&view=rev Author: mmetcalfe Date: 2010-01-16 21:00:51 +0000 (Sat, 16 Jan 2010) Log Message: ----------- Extended file listing to links - not working yet Modified Paths: -------------- BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/browser.zcml BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/ftpreaderview.py BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/templates/ftpreader_view.pt BikaVillage/Products.ftpreader/trunk/Products/ftpreader/tools/ftpreader.py Modified: BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/browser.zcml =================================================================== --- BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/browser.zcml 2010-01-16 17:17:50 UTC (rev 2038) +++ BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/browser.zcml 2010-01-16 21:00:51 UTC (rev 2039) @@ -15,8 +15,16 @@ permission="zope2.View" /> + <browser:page + for="*" + name="retrieveFile" + class="Products.ftpreader.browser.ftpreaderview.ftpreader_view" + attribute="retrieveFile" + permission="zope2.View" + /> + Modified: BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/ftpreaderview.py =================================================================== --- BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/ftpreaderview.py 2010-01-16 17:17:50 UTC (rev 2038) +++ BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/ftpreaderview.py 2010-01-16 21:00:51 UTC (rev 2039) @@ -47,8 +47,10 @@ if tool: return tool.getFiltersAndFilteredListing(filter) - def retrieveFile(self): - pass + def retrieveFile(self, filename): + tool = getToolByName(self, 'portal_ftpreader') + if tool: + return tool.retrieveFile(filename) Modified: BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/templates/ftpreader_view.pt =================================================================== --- BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/templates/ftpreader_view.pt 2010-01-16 17:17:50 UTC (rev 2038) +++ BikaVillage/Products.ftpreader/trunk/Products/ftpreader/browser/templates/ftpreader_view.pt 2010-01-16 21:00:51 UTC (rev 2039) @@ -39,7 +39,8 @@ <div tal:repeat="file listing"> - <p tal:content="file"/> + <a tal:attributes="href string:$here_url/retrieveFile?filename=$file" + tal:content="file"/> </div> </form> Modified: BikaVillage/Products.ftpreader/trunk/Products/ftpreader/tools/ftpreader.py =================================================================== --- BikaVillage/Products.ftpreader/trunk/Products/ftpreader/tools/ftpreader.py 2010-01-16 17:17:50 UTC (rev 2038) +++ BikaVillage/Products.ftpreader/trunk/Products/ftpreader/tools/ftpreader.py 2010-01-16 21:00:51 UTC (rev 2039) @@ -26,8 +26,9 @@ ##code-section module-header #fill in your manual code here +import os import logging -from ftplib import FTP +import ftplib ##/code-section module-header schema = Schema(( @@ -131,12 +132,25 @@ return self._filterListing(listing, filter) security.declarePublic('retrieveFile') - def retrieveFile(self): + def retrieveFile(self, filename): """ """ - pass + logging.info('RetreiveFile %s', filename) + ftp = ftplib.FTP(host=self.host) + ftp.login(user=self.username, passwd=self.password) + if self.folder: + ftp.cwd(self.folder) + try: + import pdb; pdb.set_trace() + d = open(os.path.basename('/tmp/%s' % filename),'wb') + s = ftp.retrbinary('RETR %s' % filename, d.write) + d.close() + ftp.quit() + return s + except ftplib.error_perm: + logging.info('ERROR: cannot read file "%s"', filename) + ftp.quit() - security.declarePublic('getFilters') def getFiltersAndFilteredListing(self, filter=None): listing = self._getListing() @@ -153,7 +167,7 @@ """ listing = [] - ftp = FTP(host=self.host) + ftp = ftplib.FTP(host=self.host) ftp.login(user=self.username, passwd=self.password) if self.folder: ftp.cwd(self.folder) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |