avoid error when no custom properties available in office file

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3952 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2010-08-15 09:21:49 +00:00
parent 007ae89f22
commit ae8ed0052d

View file

@ -56,6 +56,10 @@ class OfficeFile(ExternalFileAdapter):
propertyMap = {u'Revision:': 'version'} propertyMap = {u'Revision:': 'version'}
propFileName = 'docProps/custom.xml' propFileName = 'docProps/custom.xml'
@Lazy
def logger(self):
return getLogger('loops.integrator.office.base.OfficeFile')
def setExternalAddress(self, addr): def setExternalAddress(self, addr):
super(OfficeFile, self).setExternalAddress(addr) super(OfficeFile, self).setExternalAddress(addr)
root, ext = os.path.splitext(self.externalAddress) root, ext = os.path.splitext(self.externalAddress)
@ -65,17 +69,19 @@ class OfficeFile(ExternalFileAdapter):
setExternalAddress) setExternalAddress)
def processDocument(self): def processDocument(self):
storage = component.getUtility(IExternalStorage, name=self.storageName)
subDir = self.storageParams.get('subdirectory') subDir = self.storageParams.get('subdirectory')
fn = storage.getDir(self.externalAddress, subDir) fn = self.storage.getDir(self.externalAddress, subDir)
# open ZIP file, process properties, set version property in file # open ZIP file, process properties, set version property in file
try: try:
zf = ZipFile(fn, 'r') zf = ZipFile(fn, 'r')
except IOError, e: except IOError, e:
from logging import getLogger from logging import getLogger
getLogger('loops.integrator.office.base.OfficeFile').warn(e) self.logger.warn(e)
return return
#print '***', zf.namelist() #print '***', zf.namelist()
if self.propFileName not in zf.namelist():
self.logger.warn('Custom properties not found in file %s.' %
self.externalAddress)
propsXml = zf.read(self.propFileName) propsXml = zf.read(self.propFileName)
dom = etree.fromstring(propsXml) dom = etree.fromstring(propsXml)
changed = False changed = False