From aa569114cc4180dc1242fe0dcc191ccdc2d1b67d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 17 Jun 2008 13:05:52 +0200 Subject: [PATCH] Don't try to validate xml for old version of lxml --- trytond/ir/ui/view.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/trytond/ir/ui/view.py b/trytond/ir/ui/view.py index 9c54dbb18a..1178b6ab2b 100644 --- a/trytond/ir/ui/view.py +++ b/trytond/ir/ui/view.py @@ -56,17 +56,19 @@ class View(OSV): trans_views[trans['name']][trans['src']] = trans for view in views: xml = view.arch.strip() + tree = etree.fromstring(xml) + dtd_name = os.path.join(os.path.dirname(__file__), (view.inherit and view.inherit.type or view.type) + '.dtd') - dtd = etree.DTD(file(dtd_name)) - tree = etree.fromstring(xml) - if not dtd.validate(tree): - logger = Logger() - error_log = reduce(lambda x, y: str(x) + '\n' + str(y), - dtd.error_log.filter_from_errors()) - logger.notify_channel('ir', LOG_ERROR, - 'Invalid xml view:\n%s' % (error_log + '\n' + xml)) - return False + if hasattr(etree, 'DTD'): + dtd = etree.DTD(file(dtd_name)) + if not dtd.validate(tree): + logger = Logger() + error_log = reduce(lambda x, y: str(x) + '\n' + str(y), + dtd.error_log.filter_from_errors()) + logger.notify_channel('ir', LOG_ERROR, + 'Invalid xml view:\n%s' % (error_log + '\n' + xml)) + return False root_element = tree.getroottree().getroot() strings = self._translate_view(root_element) view_ids = self.search(cursor, 0, [