diff options
Diffstat (limited to 'openerp/exceptions.py')
| -rw-r--r-- | openerp/exceptions.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/openerp/exceptions.py b/openerp/exceptions.py index 209f2a4cff2..8d0bb779d3e 100644 --- a/openerp/exceptions.py +++ b/openerp/exceptions.py @@ -10,8 +10,9 @@ treated as a 'Server error'. If you consider introducing new exceptions, check out the test_exceptions addon. """ -from inspect import currentframe import logging +from inspect import currentframe +from lxml import etree from tools.func import frame_codeinfo _logger = logging.getLogger(__name__) @@ -90,3 +91,13 @@ class DeferredException(Exception): def __init__(self, msg, tb): self.message = msg self.traceback = tb + +class QWebException(Exception): + def __init__(self, message, **kw): + super(QWebException, self).__init__(message) + self.qweb = dict(kw) + + def pretty_xml(self): + if 'node' not in self.qweb: + return '' + return etree.tostring(self.qweb['node'], pretty_print=True) |
