handle missing properties in Office file correctly
This commit is contained in:
parent
9427b8ccbd
commit
d84e8de9a0
2 changed files with 15 additions and 9 deletions
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2012 Helmut Merz helmutm@cy55.de
|
# Copyright (c) 2013 Helmut Merz helmutm@cy55.de
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -78,28 +78,28 @@ class OfficeFile(ExternalFileAdapter):
|
||||||
@Lazy
|
@Lazy
|
||||||
def docPropertyDom(self):
|
def docPropertyDom(self):
|
||||||
fn = self.docFilename
|
fn = self.docFilename
|
||||||
dummy = dict(core=[], custom=[])
|
result = dict(core=[], custom=[])
|
||||||
root, ext = os.path.splitext(fn)
|
root, ext = os.path.splitext(fn)
|
||||||
if not ext.lower() in self.fileExtensions:
|
if not ext.lower() in self.fileExtensions:
|
||||||
return dummy
|
return result
|
||||||
try:
|
try:
|
||||||
zf = ZipFile(fn, 'r')
|
zf = ZipFile(fn, 'r')
|
||||||
except IOError, e:
|
except IOError, e:
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
self.logger.warn(e)
|
self.logger.warn(e)
|
||||||
return dummy
|
return result
|
||||||
if self.corePropFileName not in zf.namelist():
|
if self.corePropFileName not in zf.namelist():
|
||||||
self.logger.warn('Core properties not found in file %s.' %
|
self.logger.warn('Core properties not found in file %s.' %
|
||||||
self.externalAddress)
|
self.externalAddress)
|
||||||
|
else:
|
||||||
|
result['core'] = etree.fromstring(zf.read(self.corePropFileName))
|
||||||
if self.propFileName not in zf.namelist():
|
if self.propFileName not in zf.namelist():
|
||||||
self.logger.warn('Custom properties not found in file %s.' %
|
self.logger.warn('Custom properties not found in file %s.' %
|
||||||
self.externalAddress)
|
self.externalAddress)
|
||||||
propsXml = zf.read(self.propFileName)
|
else:
|
||||||
corePropsXml = zf.read(self.corePropFileName)
|
result['custom'] = etree.fromstring(zf.read(self.propFileName))
|
||||||
# TODO: read core.xml, return both trees in dictionary
|
|
||||||
zf.close()
|
zf.close()
|
||||||
return {'custom': etree.fromstring(propsXml),
|
return result
|
||||||
'core': etree.fromstring(corePropsXml)}
|
|
||||||
|
|
||||||
def getDocProperty(self, pname):
|
def getDocProperty(self, pname):
|
||||||
for p in self.docPropertyDom['custom']:
|
for p in self.docPropertyDom['custom']:
|
||||||
|
|
|
@ -771,6 +771,12 @@ msgstr "Sie haben Ihr altes Passwort nicht korrekt eingegeben."
|
||||||
msgid "Password and password confirmation do not match."
|
msgid "Password and password confirmation do not match."
|
||||||
msgstr "Die Passwort-Wiederholung stimmt nicht mit dem eingegebenen Passwort überein."
|
msgstr "Die Passwort-Wiederholung stimmt nicht mit dem eingegebenen Passwort überein."
|
||||||
|
|
||||||
|
msgid "confirmation_mail_subject"
|
||||||
|
msgstr "Benutzer-Registrierung"
|
||||||
|
|
||||||
|
msgid "confirmation_mail_text."
|
||||||
|
msgstr "Bitte clicken Sie auf den folgenden Link, um die Anmeldung abzschließen."
|
||||||
|
|
||||||
msgid "The user account has been created."
|
msgid "The user account has been created."
|
||||||
msgstr "Ihr Benutzerkonto wurde eingerichtet."
|
msgstr "Ihr Benutzerkonto wurde eingerichtet."
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue